javascript typeof

var str="123abc";
alert(typeof(str++)); // number
alert(str);// NaN //这个为什么等于NaN ,上面的str++到底做了什么操作,和 str+1有上面区别

阅读 2k
2 个回答

str+1 是返回一个字符串 “str1”

str++ 首先是执行了 Number(str) ,结果是NAN。然后再进行+1运算。需要注意的是NAN也是number类型。

所以若str=“123”,str++返回值(Number(“123”))为123,str值为124。

我说下执行流程

var str="123abc";
alert(typeof(str++)); // number
alert(str);// NaN //这个为什么等于NaN ,上面的str++到底做了什么操作,和 str+1有上面区别

alert(typeof(str++));
执行如下:

  1. Number(str) => NaN
  2. typeof(NaN) => number
  3. str++ => NaN
  4. alert("number") => number
  5. alert(str) => alert(NaN)

第二种情况
str+1的话是字符串拼接。后面的你应该知道了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题