Унарный «+» применяется для явного приведения переменной или значения к типу «number»
Унарный «+» применяется для явного приведения переменной или значения к типу «number»
Пример:
var a = "23";
console.log(+a); //23
И тут я задался вопросом, чем этот оператор отличается от функции parseInt
Посмотрим в чем же разница:
var a = "23";
console.log(+a); //23
console.log(parseInt(a)); //23
a = "-23";
console.log(+a); //-23
console.log(parseInt(a)); //-23
a = "23a";
console.log(+a); //NaN
console.log(parseInt(a)); //23
a = "a23";
console.log(+a); //NaN
console.log(parseInt(a)); //NaN
a = "aa";
console.log(+a); //NaN
console.log(parseInt(a)); //NaN
Выходит что разница в том, что:
- унарный «+» делает явное приведение переменной к типу number, то есть если в строке будет не число, то вернется NaN(не число);
- функция «parseInt», может отбросить не числовые значения, но только если они находятся в конце строки и на выходе вернет числовое значение, если такое нашлось, в противном случае NaN.
Чем еще хорош унарный «+», так это тем что его можно применять как для целочисленных значений так и для значений с плавающей точкой, смотрим пример:
var a = "23.02";
console.log(+a); //23.02
console.log(parseInt(a)); //23
console.log(parseFloat(a)); //23.02
Где это может понадобится?
Я думаю это каждый решит для себя.
Лично для меня это самый правильный способ привести значение переменной к типу number.
Опять же таким образом можно точно узнать переменная содержит числовое значение или нет.