js中"=="和"==="区别

"“是值之间的比较,而”="不仅是值之间的比较,也是类型之间转换

“==”:两边值类型相同时,直接进行转换,两边的值不同时,要先进行隐式类型转换(是要有一边是数值,就以数值运算),再进行比较。

1.如果一个数值是null,另一个是undefined,那么就相同。

2.如果一个是数值,另一个是字符串,将字符串转换成数值再进行比较。

3.如果一个是对象,另一个是数值或者是字符串,把对象转换成基础类型的值再进行比较。

4.如果值是true,将它转换成1再进行比较,如果是false,将它转换成0再进行比较。

“===”:不存在隐式类型转换,严格相等,除了值比较,还比较类型,如果两个值的类型不同,他们就不相同。

1.如果两个值都是true,或者都是false,那么他们就相同。

2.如果两个值都是数值,并且值相同,那么就相同。(如果其中一个是NaN,就不相同,NaN不会与其他值相同,包括它自身)

3.如果两个值引用同一函数、对象、数组,那么就相同,反之不相同。

4.如果两个值都是null或都是undefined,那么就相同。

5.如果两个都是字符串,每个位置的字符都一样,那么相等;反之不相同。

6.如果两个值都是null,或者都是undefined,那么相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值