==和===的区别、NAN

1、 = = * 和 = = =的区别

= = 和 = = = 都是比较运算符的一种 ,执行结果都是布尔值
两者区别
1、在number、string、boolean等基础类型间的比较时,分为同类型和不同类型间的比较

  • 同类型
    = = 和 = = = 比较: 直接进行符号两边的 ‘值’ 比较,看符号两边的值是否相同
// 值相同,类型无所谓
console.log(1 == 1)      =>ture
console.log(1 == 2)      => false
// 数据类型相同 + 值相同
console.log('1' === '1')      =>ture
console.log('1' === '2')      => false
  • 不同类型
    = = 比较: 是转化为同一数据类型后,值进行比较
    = = = 比较: 在进行比较时,必须数据类型相同 且 符号两边大的值也相同才可得到 ture (不会进行数据类型转换)
console.log(1 == '1')   =>ture
console.log(1 === '1')  =>false

2、复杂数据类型
在复杂数据类型,arr、obj中,两者没有区别,因为在复杂数据类型中,进行的都为指针地址的比较

在编程中,为使逻辑更加严谨,通常使用 ===

2、 NaN 是什么 NaN == NaN ?

NaN 是一个数字类型,但不是个数字,也就是说它无法具体表示出来, 因此, NaN = = NaN 和 NaN = = = NaN 结果都为 false

console.log(NaN == NaN)   =>false
console.log(NaN === NaN)  =>false
/*
例如 将字母A 和 字母B 转换成数字类型之后,返回值都为 NaN 
	 但是两者当中的值依旧是不同的,只是数据类型相同而已
*/
console.log(Number('A'))   =>NaN
console.log(Number('B'))   =>NaN
//在 == 比较时,不管数据类型,只看两端值是否相同
console.log(Number('A') == Number('B'))   =>false
// 在 === 比较时,不仅要两端数据类型相同,也要两端值相同
console.log(Number('A') === Number('B'))  =>false
  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值