惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
IT之家
IT之家
B
Blog
博客园_首页
博客园 - 司徒正美
有赞技术团队
有赞技术团队
博客园 - 聂微东
I
InfoQ
美团技术团队
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

博客园 - Ratooner

.NET7 IOC注册SqlSugar .NET 7.0 Program.cs访问appsettings.json配置文件 vite学习笔记 vue3 el-image图片资源的使用 bootstrap.bundle.min.js bootstrap.bundle.min.js.map 404报错 json-server 笔记 vue3创建项目笔记 openstack heat 实验笔记 openstack neutron 实验笔记 openstack nova 实验笔记 openstack glance 实验笔记 openstack keystone 实验笔记 Vue 中npm run dev 和 npm run serve 的区别 Flask+Vue 使用 vue 学习笔记1 vue export学习笔记1 GRE和VXLAN的区别 openstack各组件逻辑关系图(转载) openstack创建云主机流程图(转载)
js中===和==的区别
Ratooner · 2023-04-20 · via 博客园 - Ratooner

JS 中 == 是相同的意思,=== 严格相同

(1)操作数1 == 操作数2:也就是进行双等号比较时,先检查两个操作数的数据类型,如果相同,就进行 === 的比较,如果不同,则进行一次类型转换,转为相同类型后再进行比较

比较过程:

a)如果两个值类型相同,再进行三个等号的比较

b)如果两个值类型不同,这样也还是有可能相等的,因为

如果一个操作数是null,一个是操作数是undefined,就相等

如果一个是字符串,一个是数值,那么把字符串转为数值后再进行比较

(2)操作数1 === 操作数2:进行比较时,如果类型不同,直接就是false

比较过程

a)如果类型不同,就一定不相等

b)如果两个都是数值,并且是同一个值,那么就相等

如果其中一个至少为NaN,那么就不相等(这里判断一个值是否是NaN,使用isNaN()来判断)

c)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等

d)如果两个值都是true,或是false就相等

e)如果两个值都是引用同一个对象或是函数,那么相等,否则不相等

f)如果两个值都是null,或是undefined,那么相等

代码案例如下:

console.log(1=='1')
VM211:1 true
undefined
console.log(1==='1')
VM224:1 false
undefined