javaScript中两个等于号和三个等于号之间的区别介绍


Posted in Javascript onJune 27, 2014

一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。
===表示恒等于,比较的两边要绝对的相同

alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true
alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false

先说 ===,这个比较简单,具体比较规则如下:

1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,具体比较规则如下:

1、如果两个值类型相同,进行 === 比较,比较规则同上
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合(array数组等),都[不相等]。

Javascript 相关文章推荐
基于jquery的商品展示放大镜
Aug 07 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
Aug 11 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
jquery实现简单文字提示效果
Dec 02 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
canvas实现弧形可拖动进度条效果
May 11 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
Aug 24 Javascript
JavaScript 有用的代码片段和 trick
Feb 22 Javascript
JS实现的贪吃蛇游戏案例详解
May 01 Javascript
JS实现简单省市二级联动
Nov 27 Javascript
js判断鼠标移入移出方向的方法
Jun 24 Javascript
js获取指定日期周数以及星期几的小例子
Jun 27 #Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 #Javascript
jQuery+ajax实现鼠标单击修改内容的方法
Jun 27 #Javascript
node.js实现逐行读取文件内容的代码
Jun 27 #Javascript
javascript实现的HashMap类代码
Jun 27 #Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 #Javascript
Javascript字符串对象的常用方法简明版
Jun 26 #Javascript
You might like
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
分享PHP守护进程类
2015/12/30 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
js实现input框文字动态变换显示效果
2015/08/19 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
在Python中使用列表生成式的教程
2015/04/27 Python
Django URL传递参数的方法总结
2016/08/28 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
如何清空Session
2015/02/23 面试题
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
2014年稽查工作总结
2014/12/20 职场文书
世界遗产导游词
2015/02/13 职场文书