为啥后增量运算符返回 NaN? [关闭]
Posted
技术标签:
【中文标题】为啥后增量运算符返回 NaN? [关闭]【英文标题】:Why NaN is returned by a post-increment operator? [closed]为什么后增量运算符返回 NaN? [关闭] 【发布时间】:2016-02-28 19:41:01 【问题描述】:当下面的代码行中的node.js执行安慰结果是:
var string = 'abc'; string++;
// NaN
string;
// NaN
我认为它应该工作是这样的: P>
var string = 'abc'; string++;
// 'abc';
string;
// NaN
我的理由:
由于
++
是一个后增量操作,这意味着它返回旧值(在这种情况下abc
),然后将其添加1
到字符串下,得到abc1
,这是非数字 EM>,但++
操作者应返回2-14,所以它返回特殊NaN
号并将其分配给变量的字符串强>
请指定我错了。 P>
【问题讨论】:
什么是s
?当我运行的节点我你的代码立即得到一个引用错误。 SPAN>
什么是s
?应该说是string++
? SPAN>
@伊舍伍德是它应该。对不起,是我不好。 SPAN>
【参考方案1】:
++
“后缀”增量运算符的工作方式涉及首先执行到数字类型的转换。该转换的值始终是操作的返回值,即使该值是NaN
。
【讨论】:
【参考方案2】:++
如果用于字符串,首先尝试将其转换为数字,如果转换失败,则会得到NaN
。
【讨论】:
以上是关于为啥后增量运算符返回 NaN? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
关于 Java 8(OCA)中的短路运算符和后缀增量的问题 [关闭]