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 插件实现图片延迟加载效果代码
Feb 06 Javascript
Jquery iframe内部出滚动条
Feb 11 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
自定义的一个简单时尚js下拉选择框
Nov 20 Javascript
JS实现鼠标单击与双击事件共存
Mar 08 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
Nov 10 Javascript
javascript实现消灭星星小游戏简单版
Nov 15 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
Feb 03 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
Jan 08 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Aug 12 Javascript
Layui tree 下拉菜单树的实例代码
Sep 21 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发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
有关php运算符的知识大全
2011/11/03 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
python 正则式 概述及常用字符
2009/05/07 Python
Python中的filter()函数的用法
2015/04/27 Python
Python的randrange()方法使用教程
2015/05/15 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
python正则表达式实例代码
2020/03/03 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
python程序需要编译吗
2020/06/19 Python
python 实现单例模式的5种方法
2020/09/23 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
房地产财务部员工岗位职责
2014/03/12 职场文书
元旦促销方案
2014/03/15 职场文书
幼儿园课题方案
2014/06/09 职场文书
销售顾问工作计划书
2014/08/15 职场文书
企业投资意向书
2015/05/09 职场文书