==强制转换的问题

来源:15-4 变量类型和计算-3 代码演示

派大星_

2019-09-17

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

写回答

1回答

双越

2019-09-17

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

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

0
1
董曼巴
==比较规则: 1. 如果两边类型不同,基本类型中只有字符串和布尔值会转成数值,null 和undefined 不会转换。 2. 对象类型会尝试调用valueOf 或toString 方法获取基本类型的值然后按前面的规则转换后进行比较。 有两个特殊情况 1. undefined==null 是成立 2. NaN == NaN 不成立,这两个比较结果是不合理的,但是由于历史原因,应该不会被修正,所以记住就好了。
2019-09-24
共1条回复

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程