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实现倒计时按钮的实现代码
Mar 23 Javascript
javascript使用数组的push方法完成快速排序
Sep 15 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
moment.js轻松实现获取当前日期是当年的第几周
Feb 05 Javascript
JavaScript实现打开链接页面的方式汇总
Jun 02 Javascript
js判断所有表单项不为空则提交表单的实现方法
Sep 09 Javascript
javascript特殊文本输入框网页特效
Sep 13 Javascript
微信小程序 wxapp画布 canvas详细介绍
Oct 31 Javascript
canvas简单快速的实现知乎登录页背景效果
May 08 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
localstorage实现带过期时间的缓存功能
Jun 28 Javascript
Vue实现仿iPhone悬浮球的示例代码
Mar 13 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
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
Python文件操作基本流程代码实例
2017/12/11 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
elasticsearch python 查询的两种方法
2019/08/04 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
Pytorch中.new()的作用详解
2020/02/18 Python
Python如何使用input函数获取输入
2020/08/06 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
会计职业生涯规划范文
2014/01/04 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
工程造价专业求职信
2014/07/17 职场文书
保险内勤岗位职责
2015/04/13 职场文书
思品教学工作总结
2015/08/10 职场文书