【问题标题】: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>

标签: javascript nan post-increment


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-01-08
      • 2020-08-03
      • 2016-06-30
      • 1970-01-01
      • 2013-02-23
      • 2020-11-18
      • 2021-04-03
      • 1970-01-01
      • 2017-05-10
      相关资源
      最近更新 更多