javascript的==和===的区别

本文详细阐述了JavaScript中==与===的区别,包括基础类型、高级类型及不同类型的比较方式。通过具体示例展示了==与===如何处理字符串、数字、数组和对象之间的比较。

JavaScript == 与 === 区别

1、对于 string、number 等基础类型,== 和 === 是有区别的

  • a)不同类型间比较,== 之比较 "转化成同一类型后的值" 看 "值" 是否相等,=== 如果类型不同,其结果就是不等。
  •  b)同类型比较,直接进行 "值" 比较,两者结果一样。

2、对于 Array,Object 等高级类型,== 和 === 是没有区别的

进行 "指针地址" 比较

3、基础类型与高级类型,== 和 === 是有区别的

  • a)对于 ==,将高级转化为基础类型,进行 "值" 比较
  •  b)因为类型不同,=== 结果为 false

4、!= 为 == 的非运算,!== 为 === 的非运算

var num=1

var str="1"

var test=1

test == num   //true 相同类型 相同值 

test === num  //true 相同类型 相同值 

test !== num  //false test与num类型相同,其值也相同, 非运算肯定是false 

num == str   //true  把str转换为数字,检查其是否相等。 

num != str   //false  == 的 非运算 

num === str  //false  类型不同,直接返回false 

num !== str  //true   num 与 str类型不同 意味着其两者不等 非运算自然是true啦
### JavaScript 中 `==` `===` 运算符的区别JavaScript 中,`==` 被称为抽象相等运算符,而 `===` 则被称为严格相等运算符。两者的差异主要体现在类型转换上。 当使用 `==` 比较两个值时,如果它们的类型不同,则会尝试进行隐式的类型转换再做比较[^1]。这意味着,在某些情况下,即使数值相同但数据类型不同的变量也会被认为是相等的。例如: ```javascript console.log(0 == ""); // 输出: true console.log('0' == 0); // 输出: true ``` 相比之下,`===` 不仅检查值是否相等,还会验证这两个操作数的数据类型是否一致。只有当两者都匹配时才会返回 `true`;否则就返回 `false`[^2]。因此下面的例子都会得到 `false` 的结果: ```javascript console.log(0 === ""); // 输出: false console.log('0' === 0); // 输出: false ``` 对于不等于的情况也存在类似的差别:`!=` 只关心最终计算后的值而不考虑原始类型的差异,但是 `!==` 同样会在检测到不同类型的情况下立即判定为假并给出相应的布尔值响应[^3]。 为了编写更清晰、可预测性强以及错误率更低的代码,建议尽可能多地采用严格的比较方式即 `===` 来代替宽松版本 `==`[^4]。 #### 实际应用中的例子 这里有一个简单的函数用来展示这两种运算符的行为: ```javascript function compareValues(a, b) { console.log(`Using '==' : ${a == b}`); console.log(`Using '===': ${a === b}\n`); } compareValues(5, "5"); // Using '==' : true // Using '===': false compareValues(true, 1); // Using '==' : true // Using '===': false compareValues(null, undefined); // Using '==' : true // Using '===': false ``` 通过上述实例可以看出,在处理可能涉及多种数据类型的场景下,选择合适的相等性判断方法是非常重要的。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值