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 相关文章推荐
Javascript算符的优先级介绍
Mar 20 Javascript
jQuery拖动图片删除示例
May 10 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
对js eval()函数的一些见解
Aug 15 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
基于JavaScript实现自动更新倒计时效果
Dec 19 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
Vue.js图片预览插件使用详解
Aug 27 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
Aug 20 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 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设计模式 Facade(外观模式)
2011/06/26 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
Python中对列表排序实例
2015/01/04 Python
python win32 简单操作方法
2017/05/25 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
Python对象转换为json的方法步骤
2019/04/25 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2019/12/23 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
人事专员的岗位职责
2014/03/01 职场文书
幼儿园家长寄语
2014/04/02 职场文书
学生鉴定评语大全
2014/05/05 职场文书
大学英语专业求职信
2014/06/21 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
浅析Python实现DFA算法
2021/06/26 Python
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android