2015-11-25 1 views
-6

Когда следующая строка кода выполняется в node.js утешать результат является:Почему NaN возвращается оператором post-increment?

var string = 'abc'; string++; 
// NaN 
string; 
// NaN 

Я думал, что он должен работать так:

var string = 'abc'; string++; 
// 'abc'; 
string; 
// NaN 

Мое обоснование:

Поскольку ++ является оператором после инкремента, то есть возвращает старое значение (в данном случае abc), а затем добавляет 1 к строка, получает abc1, что Not A Number, но оператор ++ должен возвращать nubmer, поэтому она возвращает специальное NaN число и присваивает его переменной строки

Пожалуйста, укажите, где я не права ,

+3

Что такое '' '? Когда я запускаю свой код в узле, я сразу получаю ссылочную ошибку. – Pointy

+4

Что такое '' '? Должно ли это быть 'string ++'? – isherwood

+0

@isherwood Да, он должен. Извини, я виноват. – Alexander

ответ

3

Способ работы оператора приращения «постфикс» ++ включает в себя сначала выполнение преобразования в тип номера. Значение этого преобразования всегда является возвращаемым значением из операции, даже если это значение равно NaN.

3

++ Если используется в строке, сначала пытается преобразовать его в число, если преобразование не получается, вы получаете NaN.

Смежные вопросы