JavaScript中三个等号和两个等号的区别(== 和 ===)浅析


Posted in Javascript onSeptember 22, 2016

== equality 等同,=== identity 恒等。

==, 两边值类型不同的时候,要先进行类型转换,再比较。

==,不做类型转换,类型不同的一定不等。

下面分别说明:

先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:

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、任何其他组合,都[不相等]。

举例:

"1" == true

类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。

= 赋值运算符

== 等于
=== 严格等于

例:

var a = 3; 
var b = "3"; 
a==b 返回 true 
a===b 返回 false

因为a,b的类型不一样

===用来进行严格的比较判断

以上所述是小编给大家介绍的JavaScript中三个等号和两个等号的区别(== 和 ===),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery blockUI 遮罩不能消失与不能提交的解决方法
Sep 17 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
angularjs自定义ng-model标签的属性
Jan 21 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
提升页面加载速度的插件InstantClick
Sep 12 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
Dec 11 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
layer插件select选中默认值的方法
Aug 14 Javascript
学习LayUI时自研的表单参数校验框架案例分析
Jul 29 Javascript
jquery实现垂直手风琴菜单
Mar 04 jQuery
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 #Javascript
JavaScript面试题大全(推荐)
Sep 22 #Javascript
JavaScript 是什么意思
Sep 22 #Javascript
利用Node.js制作爬取大众点评的爬虫
Sep 22 #Javascript
JavaScript与java语言有什么不同
Sep 22 #Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 #Javascript
深入理解JavaScript中的并行处理
Sep 22 #Javascript
You might like
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
python 获取文件列表(或是目录例表)
2009/03/25 Python
python实现矩阵乘法的方法
2015/06/28 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
如何给Python代码进行加密
2020/01/10 Python
tensorflow的计算图总结
2020/01/12 Python
python异常处理try except过程解析
2020/02/03 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
学生会主席演讲稿
2014/04/25 职场文书
推销搭讪开场白
2015/05/28 职场文书
追悼会答谢词范文
2015/09/29 职场文书
七年级数学教学反思
2016/02/17 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle