JavaScript面试题,==和===的区别

一、等于操作符

等于操作符(==)在比较中会先进行类型转换(隐式转换),再确定操作数是否相等

规则如下

1、如果任一操作数是布尔值,则将其转换为数值再比较是否相等

true == 1 //false

 2、如果一个操作数是字符串,另一个操作数是数值,则尝试将字符串转换为数值,再比较是否相等

"1" == 1 //false

 3、null和undefined相等

因为null二进制全部为0,undefined二进制前3为000

4、如果有任一操作数是 NaN ,则相等操作符返回 false

NaN == NaN  //false

5、如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true

var a = {}
var b = {}
var c = a;
console.log(a==b)
console.log(a===b)
console.log(a==c)
console.log(a===c)

false
false
true
true

二、全等操作符

全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回 true。即类型相同,值也需相同

 "1" === 1
 false //不相等,因为数据类型不同
 1===1 
 true  //相等,因为数据类型相同值也相同


 undefined 和 null 与自身严格相等
 null === null
 true
 undefined===undefined
 true 

三、案例

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值