采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师 0 ‘’ NaN null undefined 强制转换后是false,为什么 undefined == false null == false NaN==NaN 返回的是false呢?
“ 0 ‘’ NaN null undefined 强制转换后是false”—— 在 if 条件中可以这么认为。但在 == 中不一定全部适用。
对于 == 你只需要记住一条规则。除了 if (xxx == null) 之外,其他的地方全部用 === 。就够了。
==比较规则: 1. 如果两边类型不同,基本类型中只有字符串和布尔值会转成数值,null 和undefined 不会转换。 2. 对象类型会尝试调用valueOf 或toString 方法获取基本类型的值然后按前面的规则转换后进行比较。 有两个特殊情况 1. undefined==null 是成立 2. NaN == NaN 不成立,这两个比较结果是不合理的,但是由于历史原因,应该不会被修正,所以记住就好了。
登录后可查看更多问答,登录/注册
BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率
947 19
933 17
1.1k 11
1.1k 10
1.0k 10