浅析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 相关文章推荐
js获取图片长和宽度的代码
Nov 24 Javascript
JavaScript中__proto__与prototype的关系深入理解
Dec 04 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
Feb 06 Javascript
jquery实现公告翻滚效果
Feb 27 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
Oct 16 Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
BetterScroll 在移动端滚动场景的应用
Sep 18 Javascript
详解vue的数据劫持以及操作数组的坑
Apr 18 Javascript
JavaScrip如果基于url实现图片下载
Jul 03 Javascript
Javascript call及apply应用场景及实例
Aug 26 Javascript
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
php win下Socket方式发邮件类
2009/08/21 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
php array_map()函数实例用法
2021/03/03 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
推荐11个实用Python库
2015/01/23 Python
python简单判断序列是否为空的方法
2015/06/30 Python
python实现定时提取实时日志程序
2018/06/22 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python微信公众号开发简单流程实现
2020/03/09 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
python urllib和urllib3知识点总结
2021/02/08 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
门卫班长岗位职责
2013/12/15 职场文书
同意报考证明
2015/06/17 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书