当在node.js控制台中执行以下代码行时,结果为:
var string = 'abc'; string++;
// NaN
string;
// NaN
我认为它应该像这样工作:
var string = 'abc'; string++;
// 'abc';
string;
// NaN
我的理由:
因为
++
是一个后增量运算符,意味着它返回旧值(在本例中为abc
),然后它将1
添加到字符串,获取abc1
,非数字,但++
运算符应返回nubmer,因此返回特殊NaN
数字并将其分配给变量的字符串
请说明我的错误。
答案 0 :(得分:3)
++
如果在字符串上使用,首先尝试将其转换为数字,如果转换失败,则会获得NaN
。
答案 1 :(得分:3)
++
"后缀"的方式增量运算符工作涉及首先执行到数字类型的转换。该转换的值始终是操作的返回值,即使该值为NaN
。