秒懂 JavaScript 中 “==” 和 “===” 的区别

一、相同点:都是 JavaScript 中的比较运算符,两个变量进行比较,结果返回的是布尔值,要么是 true (符合条件),要么是 false (不符合条件)。

二、不同点:(以下为重点)

1、== 等于
看符号左右两边的值是否相等
不管数据类型,只看值是不是一样(换而言之,两个东西能否通过转化得到一个东西)

console.log(1 == 1)         // 控制台输出为 true
console.log(1 == '1')       // 控制台输出为 true

2、=== 全等
看符号左右两边的值是否相等
数据类型和值都必须一样才能得到 true,否则 false

console.log(1 === 1)        // 控制台输出为 true
console.log(1 === '1')      // 控制台输出为 false

console.log(typeof(1))      // 检测数据类型为 number
console.log(typeof('1'))    // 检测数据类型为 string

扩展小知识:
检测数据类型的语法有两个:
1、typeof(你要检测的变量)
2、typeof 你要检测的变量
返回值是一个 字符串 数据类型
特别注意:当两个及以上的 typeof 连写的时候,得到的结果一定是 string

三、特别收获

1、undefined 和 null 在 == 的时候为 true,在 === 的时候为 false

console.log(undefined == null)      // 控制台输出为 true
console.log(undefined === null)     // 控制台输出为 false

console.log(typeof(undefined))      // 检测数据类型为 undefined
console.log(typeof(null))           // 检测数据类型为 object

2、NaN 自己不等于自己,== 和 === 都是 false

console.log(NaN == NaN)      // 控制台输出为 false
console.log(NaN === NaN)     // 控制台输出为 false

console.log(typeof(NaN))     // 检测数据类型为 number

需要注意:
NaN:代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
需要使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值