为什么NaN由后增量运算符返回?

时间:2015-11-25 20:58:09

标签: javascript nan post-increment

当在node.js控制台中执行以下代码行时,结果为:

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

我认为它应该像这样工作:

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

我的理由:

  

因为++是一个后增量运算符,意味着它返回旧值(在本例中为abc),然后它将1添加到字符串,获取abc1非数字,但++运算符应返回nubmer,因此返回特殊NaN数字并将其分配给变量的字符串

请说明我的错误。

2 个答案:

答案 0 :(得分:3)

++如果在字符串上使用,首先尝试将其转换为数字,如果转换失败,则会获得NaN

答案 1 :(得分:3)

++"后缀"的方式增量运算符工作涉及首先执行到数字类型的转换。该转换的值始终是操作的返回值,即使该值为NaN