Javascript中的==与===
在JavaScript中,== 和 === 运算符用于比较两个值。
== 运算符被称为相等运算符(Equality Operator)。它会比较两个值是否相等,但在比较之前会进行类型转换(如果两个值的类型不同)。如果两个值在类型转换后相等,则返回 true。
=== 运算符被称为严格相等运算符(Strict Equality Operator)。它会比较两个值是否严格相等,包括它们的类型。如果两个值的类型不同,或者值不同,则返回 false。
点击查看代码
var a1 = {
name:"tom",
age:10
};
var a2 = {
name:"tom",
age:10
};
if(a1==a2){
console.log("== is true")
}else{
console.log("== is false")
}
if(a1===a2){
console.log("=== is true")
}else{
console.log("=== is false")
}
运行结果:
a1和a2是两个不同的对象,即使它们包含想吐的属性和值。
在Javascript中,对象是引用类型,这意味着变量a1与变量a2存储的是对象内容地址的引用,而不是对象本身。
==运算符:
== 操作符在比较两个对象时,会进行类型转换(如果类型不同)然后再比较值。
a1a2:实际上是在比较这两个对象的引用(即它们在内存中的存储位置),而不是比较它们的属性值是否相同。即两个对象引用是否指向同一个内存地址。
由于a1和a2是两个不同的对象(即使它们包含相同的属性和值),它们指向不同的内存地址。因此a1a2返回false。
===运算符:
=== 操作符在比较两个值时,不仅会比较值本身,还会比较它们的类型,而且不会进行类型转换。
a1 === a2:这里比较的是两个对象的类型和值。
由于 a1 和 a2 是两个不同的对象实例,它们是不同的对象,具有不同的地址。因此,a1 === a2 也返回 false。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)