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 相关文章推荐
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 Javascript
JS去掉第一个字符和最后一个字符的实现代码
Feb 20 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
node中socket.io的事件使用详解
Dec 15 Javascript
JS实现简单的二维矩阵乘积运算
Jan 26 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
深入探究node之Transform
Jul 20 Javascript
图片加载完成再执行事件的实例
Nov 16 Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 Javascript
详解VUE里子组件如何获取父组件动态变化的值
Dec 26 Javascript
uni-app微信小程序登录授权的实现
May 22 Javascript
Javascript中async与await的捕捉错误详解
Mar 03 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
php 中include()与require()的对比
2006/10/09 PHP
Php获取金书网的书名的实现代码
2010/06/11 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
python中遍历文件的3个方法
2014/09/02 Python
Python Matplotlib库入门指南
2015/05/18 Python
Python实现的Excel文件读写类
2015/07/30 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
Python简单读取json文件功能示例
2017/11/30 Python
python matplotlib画图实例代码分享
2017/12/27 Python
django_orm查询性能优化方法
2018/08/20 Python
python3 读取Excel表格中的数据
2018/10/16 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
党员岗位承诺书
2014/03/25 职场文书
项目投资建议书
2014/05/16 职场文书
员工年终自我评价
2014/09/14 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
研究生导师评语
2014/12/31 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python