JavaScript == 和 === 的区别

先来看个例子:
if(tc == "" ){
    console.log("空值!");
}

上面当tc 值为 0 时,if(tc == "")  居然返回true,正常来看不应该。

于是乎,这里就要说到 == 和 === 的区别了
== JavaScript中的隐式操作符,如果两边数据类型不一致,就会进行隐式数据类型转换;
=== JavaScript中的全等操作符,比较的是类型和值都是否相等,属于严格比较,不会进行自动类型转换;
测试证明: 
空字符串转换成数字类型是 0    
布尔类型 true 转换成数字类型是 1
布尔类型 false 转换成数字类型是 0
null 转换成数字类型是 0
undefined 转换成数字类型 NaN    

 

另外也可再多看一下这篇文章

https://www.cnblogs.com/wl521/p/7423852.html

 

### 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 ``` 通过上述实例可以看出,在处理可能涉及多种数据类型的场景下,选择合适的相等性判断方法是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值