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 相关文章推荐
一个JS翻页效果
Jul 23 Javascript
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
js中top/parent/frame概述及案例应用
Feb 06 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
jquery 获取select数组与name数组长度的实现代码
Jun 20 Javascript
JavaScript实现Fly Bird小游戏
Dec 15 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
vue多页面开发和打包正确处理方法
Apr 20 Javascript
angular1.x ui-route传参的三种写法小结
Aug 31 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
javascript工具库代码
2012/03/29 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
Vue组件化开发思考
2018/02/02 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
python实现汉诺塔方法汇总
2016/07/25 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Python列表list排列组合操作示例
2018/12/18 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
大学生求职自荐信
2013/12/12 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
目标责任书格式范文
2015/05/11 职场文书
少先队工作总结2015
2015/05/13 职场文书
旷工检讨书大全
2015/08/15 职场文书
争做文明公民倡议书
2019/06/24 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
总结Python连接CS2000的详细步骤
2021/06/23 Python