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 上下滚动展示模仿Marquee机制
Dec 20 Javascript
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
在子窗口中关闭父窗口的一句代码
Oct 21 Javascript
ExtJS如何设置与获取radio控件的选取状态
Jan 22 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
Feb 17 Javascript
JS实现微信弹出搜索框 多条件查询功能
Dec 13 Javascript
浅谈mint-ui 填坑之路
Nov 06 Javascript
使用Vue动态生成form表单的实例代码
Apr 26 Javascript
vue实现短信验证码输入框
Apr 17 Javascript
vue组件入门知识全梳理
Sep 21 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
Nov 16 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截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
js图片预加载示例
2014/04/30 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
Python面向对象编程基础解析(一)
2017/10/26 Python
对python sklearn one-hot编码详解
2018/07/10 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
python openpyxl使用方法详解
2019/07/18 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
PHP面试题集
2016/12/18 面试题
自我评价怎么写好呢?
2013/12/05 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
幼儿园运动会口号
2014/06/07 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
win7配置本地ftp服务器的图文教程
2022/08/05 Servers