为啥会出现这个bug
注意区分isNaN() / Number.isNaN()isFinite() / Number.isFinite()
■网友
根据 ES 来看。15.1.2.4 isNaN (number)Returns true if the argument coerces to NaN, and otherwise returns false.If ToNumber(number) is NaN, return true.Otherwise, return false.首先看的是 ToNumber 的值,这个在 v8 代码里面也有提及。https://github.com/v8/v8/blob/5.8.43/src/builtins/builtins-global.cc#L196-L199那么接下去实际上看的就是这个 ToNumber 了。在 ECMA 262 标准里面(暂且不管 ES6)关于 ToNumber 是这么描述的。9.3 ToNumberThe abstract operation ToNumber converts its argument to a value of type Number according to Table 12:
【为啥会出现这个bug】
然后对于字符串的转换在 9.3.1 中,具体的这里就不赘述了,有兴趣可以自行拓展阅读下。如果是空字符串的话 ToNumber 是 0;但是如果是你题目中的问题来说,其 ToNumber 显然是个 NaN。
■网友
字符串当然不是数字,你在想什么?
■网友
JavaScript isNaN() 函数如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
推荐阅读
- 如果你的多肉出现这个长势,要注意这个细节,多肉才会越来越美!
- 『活动』让孩子们欢欢喜喜过新年 这个元旦好有爱!南京聋校举办多种形式庆祝活动
- 『天气』多条高速、航道封闭管制 江苏出现强浓雾天气
- 免费“单人套餐”背后的故事:爱心让这个冬天不再寒冷
- 夫子庙■“秦淮灯会”“夫子庙小吃”等非遗重点保护 护航夫子庙,这个法明年施行
- 气温■@江苏人,这个周末天气晴!温度缓慢回升,早晚依旧“冻”人
- 内蒙古呼伦贝尔出现零下43.6摄氏度极寒天气
- 黄金时间■黄金时间丨哪种产品最节水?购买产品请注意这个标识!
- 『黄金时间』请认准这个蓝色的标志! 黄金时间丨同行业中用水最少的企业
- |高压补水脸部出现红肿,网红“补水神器”靠谱吗?
