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 相关文章推荐
FormValidate 表单验证功能代码更新并提供下载
Aug 23 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
使用javascript控制cookie显示和隐藏背景图
Feb 12 Javascript
jquery中each方法示例和常用选择器
Jul 08 Javascript
JQuery实现动态表格点击按钮表格增加一行
Aug 24 Javascript
JS两种类型的表单提交方法实例分析
Nov 28 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
Jan 19 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
vue的列表交错过渡实现代码示例
May 05 Javascript
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
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
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
JsRender for object语法简介
2014/10/31 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
Python脚本实现格式化css文件
2015/04/08 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
python调用外部程序的实操步骤
2019/03/04 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
Python中pass语句的作用是什么
2016/06/01 面试题
勾股定理课后反思
2014/04/26 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
pandas进行数据输入和输出的方法详解
2022/03/23 Python
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server