请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

==强制转换的问题

老师 0 ‘’ NaN null undefined 强制转换后是false,为什么 undefined == false null == false NaN==NaN 返回的是false呢?

正在回答

1回答

双越 2019-09-17 21:42:38

“ 0 ‘’ NaN null undefined 强制转换后是false”—— 在 if 条件中可以这么认为。但在 == 中不一定全部适用。

对于 == 你只需要记住一条规则。除了 if (xxx == null) 之外,其他的地方全部用 === 。就够了。

0 回复 有任何疑惑可以回复我~
  • ==比较规则:
    1. 如果两边类型不同,基本类型中只有字符串和布尔值会转成数值,null 和undefined 不会转换。
    2. 对象类型会尝试调用valueOf 或toString 方法获取基本类型的值然后按前面的规则转换后进行比较。
    
    有两个特殊情况 1. undefined==null 是成立 2. NaN == NaN 不成立,这两个比较结果是不合理的,但是由于历史原因,应该不会被修正,所以记住就好了。
    回复 有任何疑惑可以回复我~ 2019-09-24 03:49:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信