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 相关文章推荐
ArrayList类(增强版)
Apr 04 Javascript
关于Javascript模块化和命名空间管理的问题说明
Dec 06 Javascript
学习JavaScript的最佳方法分享
Oct 21 Javascript
jquery实现网站超链接和图片提示效果
Mar 21 Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
一个通过script自定义属性传递配置参数的方法
Sep 15 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
Aug 25 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 Javascript
Vue.directive使用注意(小结)
Aug 31 Javascript
vue src动态加载请求获取图片的方法
Oct 17 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
PHP 柱状图实现代码
2009/12/04 PHP
php常用Stream函数集介绍
2013/06/24 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
js表单登陆验证示例
2016/10/19 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
python将txt文件读取为字典的示例
2018/12/22 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
this关键字的含义
2015/04/08 面试题
大学生求职中的自我评价
2013/10/01 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
就业协议书的作用
2014/04/11 职场文书
租赁协议书范本
2014/04/22 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
小学生环保标语
2014/06/13 职场文书
最新离婚协议书范本
2014/08/19 职场文书
师德标兵事迹材料
2014/12/19 职场文书
家属联谊会致辞
2015/07/31 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python