jsvascript === 和==的区别

==   用于比较   判断 两者相等      ==在比较的时候可以自动转换数据类型

 

===用于严格比较   判断两者严格相等     ===严格比较,不会进行自动转换,要求进行比较的操作数必须类型一致,不一致时返回flase。

举例说明:

"1"  ==  true

类型不同,"=="将先做类型转换,把true转换为1,即为 "1"  ==  1;

此时,类型仍不同,继续进行类型转换,把"1"转换为1,即为 1 == 1;

此时,"==" 左右两边的类型都为数值型,比较成功!返回true



如果比较:"1"  ===  true 左侧为字符型,右侧为bool布尔型,左右两侧类型不同,结果为false;

如果比较:"1" === 1 左侧为字符型,右侧为int数值型,左右两侧类型不同,结果为false;

如果比较: 1   ===  1       左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;

如果比较: 1   ===  2      左侧为int数值型,右侧为int数值型,左右两侧类型相同,但数值大小不同,结果为false;
 

简而言之就是 "==" 只要求值相等;   "===" 要求值和类型都相等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值