浅谈JavaScript中等号、双等号、 三等号的区别
作者:qq_42247917 时间:2024-04-29 13:45:04
一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。
=== 判断规则
如果类型不同,就[不相等]
如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
如果两个值都是true,或者都是false,那么[相等]。
如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
如果两个值都是null,或者都是undefined,那么[相等]。
== 判断规则:
如果两个值类型相同,进行 === 比较。
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
如果一个是null、一个是undefined,那么[相等]。
如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核 心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我 也不大懂)
任何其他组合,都[不相等]。
例如:
var a = 9;
var b = 9;
alert(a == b);
alert(a === b);
此时alert的值肯定是true,不管是全等还是恒等,原因应该也很简单吧,只是定义两个变量,并赋值,是相同类型,并且值也相等。可是当a和b都同时给赋个数组的时候就一定是false,这是以为地址的关系,想必也显而易见。来个小总结,嘿嘿
基本类型包括Undefined、Null、Boolean、Number和String类型,引用类型包括数组,函数和对象。
1.对于Number,String等基本类型时,双等号会先将类型转化一致再比较,值等则为true,三等号时,不会进行转化类型,直接比较,两个都相当才可为true。
2.对于数组,对象等时,不管是双等号还是三等号进行“指针地址”比较
来源:https://blog.csdn.net/qq_42247917/article/details/80786919
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
用CSS设置表格Table的细边框的比较好用的方法
python实现微信自动回复功能
支付宝lab logo设计创意发想
![](https://img.aspxhome.com/file/UploadPic/200911/12/blog1-38s.jpg)
在python3.64中安装pyinstaller库的方法步骤
![](https://img.aspxhome.com/file/2023/3/66743_0s.png)
Go语言指针用法详解
![](https://img.aspxhome.com/file/2023/3/97153_0s.png)
解密ThinkPHP3.1.2版本之独立分组功能应用
MySQL连接时出现2003错误的实现
![](https://img.aspxhome.com/file/2023/6/124866_0s.png)
python教程网络爬虫及数据可视化原理解析
![](https://img.aspxhome.com/file/2023/7/124287_0s.png)
python使用scapy模块实现ping扫描的过程详解
![](https://img.aspxhome.com/file/2023/6/135086_0s.png)
python3实现163邮箱SMTP发送邮件
![](https://img.aspxhome.com/file/2023/8/63538_0s.jpg)
python实现beta分布概率密度函数的方法
![](https://img.aspxhome.com/file/2023/9/93449_0s.jpg)
pycharm软件实现设置自动保存操作
![](https://img.aspxhome.com/file/2023/9/93509_0s.jpg)
python Spyder界面无法打开的解决方法
![](https://img.aspxhome.com/file/2023/7/134487_0s.jpg)
安装MySQL的步骤和方法
![](https://img.aspxhome.com/file/UploadPic/20097/30/20097309429851s.gif)
讲解无法打开用户默认数据库的解决方法
数据库连接字符串的常见问题和解决方法
PHP微信支付实例解析
鼠年发几张可爱老鼠的表情gif
![](https://img.aspxhome.com/file/UploadPic/20081/29/2008129125546627s.gif)
Python利用神经网络解决非线性回归问题实例详解
![](https://img.aspxhome.com/file/2023/6/127716_0s.png)
python 读取二进制 显示图片案例
![](https://img.aspxhome.com/file/2023/6/77636_0s.jpg)