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 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
javascript RadioButtonList获取选中值
Apr 09 Javascript
JS模板实现方法
Apr 03 Javascript
javascrip关于继承的小例子
May 10 Javascript
jQuery中parent()方法用法实例
Jan 07 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
Feb 05 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
JavaScript如何获取到导航条中HTTP信息
Oct 10 Javascript
微信小程序中为什么使用var that=this
Aug 27 Javascript
vue.js中ref及$refs的使用方法解析
Oct 08 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新手上路(三)
2006/10/09 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
php中异常处理方法小结
2015/01/09 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
详解vue axios用post提交的数据格式
2018/08/07 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python正则表达式match和search用法实例
2015/03/26 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
护理自荐信
2013/10/22 职场文书
实习生个人的自我评价
2013/12/08 职场文书
商超业务员岗位职责
2014/03/12 职场文书
《秋游》教学反思
2014/04/24 职场文书
期末评语大全
2014/05/04 职场文书
2014国庆节标语口号
2014/09/19 职场文书
归元寺导游词
2015/02/06 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers