javaScript中"=="和"==="的区别详解


Posted in Javascript onMarch 16, 2018

区别:

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

下面分别说明:

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

1、如果类型不同,就不相等

2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)

3、如果两个都是字符串,每个位置的字符都一样,那么相等;否则不相等 。

4、如果两个值都是true,或者都是false,那么相等。

5、如果两个值都引用同一个对象或函数,那么相等;否则不相等。

6、如果两个值都是null,或者都是undefined,那么相等。
再说 "=="
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:

a、如果一个是null、一个是undefined,那么相等。

b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。

c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。

d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。 js核心内置类,会尝试valueOf先于toString;

e、任何其他组合,都不相等。

总结:

也就是说"=="它是值之间的比较,而:"==="不仅仅是值之间的比较,也是类型之间的比较,一般在做项目的时候,根据业务的不同我们决定用哪一个,大多数开发人员习惯于"=="这样是不严谨的.

Javascript 相关文章推荐
JavaScript面向对象(极简主义法minimalist approach)
Jul 17 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
Aug 28 Javascript
Jquery实现的tab效果可以指定默认显示第几页
Oct 16 Javascript
jquery如何把数组变为字符串传到服务端并处理
Apr 30 Javascript
jquery实现浮动的侧栏实例
Jun 25 Javascript
iframe中使用jquery进行查找的方法【案例分析】
Jun 17 Javascript
纯js和css完成贪吃蛇小游戏demo
Sep 01 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
jQuery插件Echarts实现的渐变色柱状图
Mar 23 jQuery
微信小程序自定义组件components(代码详解)
Oct 21 Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
node.js博客项目开发手记
Mar 16 #Javascript
vue iView 上传组件之手动上传功能
Mar 16 #Javascript
p5.js入门教程之平滑过渡(Easing)
Mar 16 #Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 #Javascript
JavaScript的数据类型转换原则(干货)
Mar 15 #Javascript
p5.js入门教程之小球动画示例代码
Mar 15 #Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
Mar 15 #Javascript
You might like
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python中内建函数的简单用法说明
2016/05/05 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
Python进程间通信之共享内存详解
2017/10/30 Python
Django中的Signal代码详解
2018/02/05 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
超市后勤自我鉴定
2014/01/17 职场文书
2014年实习期工作总结
2014/11/27 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
python多线程方法详解
2022/01/18 Python