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 相关文章推荐
引入autocomplete组件时JS报未结束字符串常量错误
Mar 19 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
Jul 28 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
浅谈react.js中实现tab吸顶效果的问题
Sep 06 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
Jan 10 Javascript
JavaScript 五大常见函数
Mar 23 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
Nov 21 Javascript
JavaScript的级联函数用法简单示例【链式调用】
Mar 26 Javascript
jquery中为什么能用$操作
Jun 18 jQuery
vue-cli或vue项目利用HBuilder打包成移动端app操作
Jul 29 Javascript
Vue绑定用户接口实现代码示例
Nov 04 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获取mysql版本的几种方法小结
2008/03/25 PHP
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
php实现网站留言板功能
2015/11/04 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
javascript 动态创建表格
2015/01/08 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
Python深入学习之闭包
2014/08/31 Python
Python 通配符删除文件的实例
2018/04/24 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Django框架验证码用法实例分析
2019/05/10 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
关于责任的演讲稿
2014/05/20 职场文书
停电调休通知
2015/04/16 职场文书
首次购房证明
2015/06/19 职场文书
图书馆义工感想
2015/08/07 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书