浅析js中2个等号与3个等号的区别


Posted in Javascript onAugust 06, 2013

首先,== equality 等同,=== identity 恒等。

==, 两边值类型不同的时候,要先进行类型转换,再比较。

===,不做类型转换,类型不同的一定不等。

下面分别说明:

先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:

1、如果类型不同,就[不相等]

2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)

3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。

4、如果两个值都是true,或者都是false,那么[相等]。

5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。

6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,根据以下规则:

1、如果两个值类型相同,进行 === 比较。

2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:

a、如果一个是null、一个是undefined,那么[相等]。

b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。

c、如果任一值是 true

Javascript 相关文章推荐
JavaScript的Cookies
Jan 16 Javascript
javascript中apply和call方法的作用及区别说明
Feb 14 Javascript
jquery解决客户端跨域访问问题
Jan 06 Javascript
JavaScript给url网址进行encode编码的方法
Mar 18 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
AngularJS表单提交实例详解
Feb 18 Javascript
Node.js websocket使用socket.io库实现实时聊天室
Feb 20 Javascript
React Native验证码倒计时工具类分享
Oct 24 Javascript
vue iview实现动态路由和权限验证功能
Apr 17 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
JavaScript:Div层拖动效果实例代码
Aug 06 #Javascript
jquery鼠标滑过提示title具体实现代码
Aug 06 #Javascript
jquery弹出关闭遮罩层实例
Aug 06 #Javascript
jquery批量控制form禁用的代码
Aug 06 #Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 #Javascript
intro.js 页面引导简单用法 分享
Aug 06 #Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
Aug 06 #Javascript
You might like
基于mysql的bbs设计(一)
2006/10/09 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
简单学习Python time模块
2016/04/29 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
Python3.5运算符操作实例详解
2019/04/25 Python
mac使用python识别图形验证码功能
2020/01/10 Python
opencv python图像梯度实例详解
2020/02/04 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
门诊挂号室室长岗位职责
2013/11/27 职场文书
电子商务专业自我鉴定
2013/12/18 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
综艺节目策划方案
2014/06/13 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js