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 相关文章推荐
转一个日期输入控件,支持FF
Apr 27 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
Jul 04 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
Sep 10 Javascript
JS使用getComputedStyle()方法获取CSS属性值
Apr 23 Javascript
js获取滚动距离的方法
May 30 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
javascript算法之二叉搜索树的示例代码
Sep 12 Javascript
javascript对HTML字符转义与反转义
Dec 13 Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 Javascript
layer实现弹出层自动调节位置
Sep 05 Javascript
Vue的状态管理vuex使用方法详解
Feb 05 Javascript
ReactRouter的实现方法
Jan 25 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中引用类型和值类型功能与用法示例
2019/02/26 PHP
jQuery JSON的解析方式分享
2011/04/05 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
js实现弹窗效果
2020/08/09 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python字典对象实现原理详解
2019/07/01 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
python如何运行js语句
2020/09/09 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
成功的餐厅经营创业计划书
2014/01/15 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
给校长的一封建议书
2014/03/12 职场文书
村长贪污检举信
2014/04/04 职场文书
车辆转让协议书
2014/09/24 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
审美与表现自我评价
2015/03/09 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
Log4j.properties配置及其使用
2021/08/02 Java/Android