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与JSon实现的无刷新分页代码
Sep 13 Javascript
JQuery 操作/获取table具体代码
Jun 13 Javascript
jquery序列化表单去除指定元素示例代码
Apr 10 Javascript
JavaScript动态加载样式表的方法
Mar 21 Javascript
javascript实现确定和取消提示框效果
Jul 10 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
Jul 28 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
基于bootstrap页面渲染的问题解决方法
Aug 09 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
React+TypeScript+webpack4多入口配置详解
Aug 08 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
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
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
List Installed Software Features
2007/06/11 Javascript
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
JS实现放烟花效果
2020/03/10 Javascript
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
浅析Python面向对象编程
2020/07/10 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
优秀员工个人的自我评价
2013/11/29 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL