Что будет выведено в консоль при выполнении следующего кода:
(function() {
'use strict';
var num = 3;
num += '2';
num = +num;
console.log(num);
})();
Число 32.
Оператор +
может быть как унарным, так и бинарным:
// Унарный оператор +
var num = +'32'; // число 32
// Бинарный оператор +
var sum = 2 + 3; // число 5
var str = 2 + '3'; // строка '23'
Унарный оператор +
используется для приведения типов - с помощью него можно перевести строку, содержащую только числовые символы в число:
var num = '32'; // num === '32'
typeof num; // string
num = +num; // Перевод строки в число, num === 32
typeof num; // number
Унарный +
может переводить в числа не только строки, но и
null
-+null === 0
true
-+true === 1
false
-+false === 0
- массивы, состоящие из одного элемента -
+['1'] === 1
и+[2] === 2
В отличие от других способов приведения значения к числу унарный +
не работает со строками, содержащими нечисловые символы:
// Унарный плюс не справился
var num1 = +'2a', // NaN
num2 = +'a2'; // NaN
// parseInt справился
var num3 = parseInt('2a'), // 2
num4 = parseInt('a2'); // NaN
(function() {
'use strict';
// Инициализации переменной
var num = 3; // num === 3
// Добавление строки к числу
// Тип данных в переменной num меняется на string
num += '2'; // num === '32'
// Оператор + конвертирует строку в число или NaN
num = +num; // num === 32
console.log(num); // 32
})();