Давайте рассмотрим следующий код:
let a = '2';
let b = '3';
alert(a + b); // выведет '23'
Как вы видите, в нашем случае обе переменных содержат в себе строки и складываются, соответственно, как строки.
Пусть мы хотели бы, чтобы значения наших
переменных в данном случае складывались не
как строки, а как числа. В этом случае мы
можем принудительно преобразовать тип нашей
переменной к числу, используя специальную
функцию Number
:
let a = '2';
let b = '3';
alert(Number(a) + Number(b)); // выведет 5
Можно преобразовывать строки в числа не в операции сложения, а сразу при записи в переменную - это будет работать:
let a = Number('2'); // в переменную запишется число 2
let b = Number('3'); // в переменную запишется число 3
alert(a + b); // выведет 5
Дана переменная a
со значением '10'
и переменная b
со значением '20'
.
Сложите данные переменные как числа.
Не запуская код, определите, что выведется на экран:
alert( Number('2') + Number('3') );
Не запуская код, определите, что выведется на экран:
alert( 2 + Number('3') );
Не запуская код, определите, что выведется на экран:
alert( '2' + Number('3') );
Альтернатива
Часто для сокращения кода вместо Number
перед строкой ставят знак +
.
Таким образом над строкой выполняется
операция, допустимая только для
чисел и строка переводится в число.
Смотрите пример:
let a = +'2'; // в переменную запишется число 2
let b = +'3'; // в переменную запишется число 3
alert(a + b); // выведет 5
Вот еще пример:
let a = '2';
let b = +a; // в b запишется число 2
А вот следующий пример, хоть и рабочий, но
выглядит не очень красиво. В нем более уместно
было бы использование функции Number
:
let a = '2';
let b = '3';
alert(+a + +b); // выведет 5
Дан код:
let a = '2';
let b = '3';
alert(a + b); // выведет '23'
С помощью описанного приема с плюсом исправьте
приведенный код так, чтобы в переменные a
и b
присваивалось число, а не строка,
ну и результатом, соответственно, было не
'23'
, а 5
.
Не только цифры
При попытке преобразовать строку, содержащую
не только цифры, но и другие символы, функция
Number
вернет своим результатом значение
NaN
:
alert(Number('2s')); // выведет NaN
Тот же эффект даст использование плюса:
alert(+'2s'); // выведет NaN