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 相关文章推荐
js 设置选中行的样式的实现代码
May 24 Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
那些年,我还在学习jquery 学习笔记
Mar 05 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
Apr 15 Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 Javascript
跟我学习javascript创建对象(类)的8种方法
Nov 20 Javascript
js与applet相互调用的方法
Jun 22 Javascript
基于jQuery实现表格内容的筛选功能
Aug 21 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
微信小程序实现导航栏选项卡效果
Jun 19 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
详解Python编程中time模块的使用
2015/11/20 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
Python分析学校四六级过关情况
2017/11/22 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
python对execl 处理操作代码
2020/06/22 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
后勤自我鉴定
2013/10/13 职场文书
综合实践活动方案
2014/02/14 职场文书
逃课上网检讨书
2014/02/20 职场文书
大学生工作求职信
2014/06/23 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js
宝塔更新Python及Flask项目的部署
2022/04/11 Python