Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
alexkar
6 лет назад

Унарный «+» применяется для явного приведения переменной или значения к типу «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

Выходит что разница в том, что:

  1. унарный «+» делает явное приведение переменной к типу number, то есть если в строке будет не число, то вернется NaN(не число);
  2. функция «parseInt», может отбросить не числовые значения, но только если они находятся в конце строки и на выходе вернет числовое значение, если такое нашлось, в противном случае NaN.
    Чем еще хорош унарный «+», так это тем что его можно применять как для целочисленных значений так и для значений с плавающей точкой, смотрим пример:

var a = "23.02";
console.log(+a); //23.02
console.log(parseInt(a)); //23
console.log(parseFloat(a)); //23.02

Где это может понадобится?
Я думаю это каждый решит для себя.
Лично для меня это самый правильный способ привести значение переменной к типу number.
Опять же таким образом можно точно узнать переменная содержит числовое значение или нет.


1
0.309 GOLOS
На Golos с December 2018
Комментарии (1)
Сортировать по:
Сначала старые