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 相关文章推荐
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
Select标签下拉列表二级联动级联实例代码
Feb 07 Javascript
javascipt:filter过滤介绍及使用
Sep 10 Javascript
js跨域请求的5中解决方式
Jul 02 Javascript
jQuery.extend 函数及用法详细
Sep 06 Javascript
基于 Node.js 实现前后端分离
Apr 23 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
Apr 07 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
Jun 13 Javascript
js实现随机点名系统(实例讲解)
Oct 18 Javascript
vue微信分享到朋友圈 vue微信发送给好友
Nov 28 Javascript
如何在JavaScript中谨慎使用代码注释
Jun 21 Javascript
Promise扫盲贴
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学习 变量使用总结
2011/03/24 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
pandas重新生成索引的方法
2018/11/06 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
网页设计个人找工作求职信
2013/11/28 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
就业协议书样本
2014/08/20 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers