博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript:逻辑操作符“==”与“===”的区别
阅读量:5291 次
发布时间:2019-06-14

本文共 761 字,大约阅读时间需要 2 分钟。

Summary

JavaScript中,逻辑操作符“===”会先检查操作数的数据类型,对不同的数据类型会返回false. 而“==”对不同类型的操作数进行比较时,会进行类型转换后再比较。

 

Description

在JavaScript中进行判断的两种逻辑操作符:

  1. == (相等)
  2. === (严格相等/全等)

由于JavaScript是弱类型的脚本语言(weakly typed),用于作比较的两个操作数的类型允许不一致。而这两个逻辑操作符最大的区别在于对操作数类型的容忍度。

即:如果两个操作数的数据类型不一致

  • “==” 会尝试对操作数的数据类型进行转换后再进行比较。
  • “===”会直接返回false。
console.log(typeof null, typeof undefined); //object undefinedconsole.log(null == undefined, null === undefined); //true false

可见,由于null与undefined的类型不同,两种比较的结果也不同。

 

再举例:

if(foo){    doSomething;}//foo为false的情况://false//0//'' (空字符串)//null//undefined//NaN //且除了NaN外,任意组合使用"=="作比较的结果都是true,使用"==="作比较的结果都是false,如if('' == 0)为true. //NaN与其他任何值都不相等,即当且仅当a=NaN时,a != a为true.

 

对于“==”和“===”比较更详细的规则,可以参考我的。

 

参考资料:《》

转载于:https://www.cnblogs.com/lawrencechen/p/4726907.html

你可能感兴趣的文章
lesson 8:小程序
查看>>
鼠标悬停显示透明文字内容
查看>>
Window_Open详解
查看>>
centos使用--rpm和yum的关系以及基本用法
查看>>
PHP使用引用变量foreach时,切记其他循环不要使用同一个名字的变量
查看>>
第二类斯特林数总结
查看>>
随笔测试
查看>>
IIS Express 配置缓存位置
查看>>
单向链表
查看>>
Linux文件系统管理
查看>>
自己写的分页控件
查看>>
ContactsUtil 工具类 - 转载
查看>>
实验4-6:正弦动态圆
查看>>
docker 学习(五) virtualBox虚拟机安装docker
查看>>
Oracle企业管理框架
查看>>
HTML特效代码大全
查看>>
如何通过代码监控JVM的运行状态
查看>>
数据持久化的复习
查看>>
[YII2] COOKIE的操作使用
查看>>
raft学习
查看>>