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 相关文章推荐
Mootools 1.2教程 正则表达式
Sep 15 Javascript
Jquery 弹出层插件实现代码
Oct 24 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 Javascript
javascript时间函数大全
Jun 30 Javascript
简介JavaScript中toTimeString()方法的使用
Jun 12 Javascript
javascript cookie的简单应用
Feb 24 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
Vue+webpack+Element 兼容问题总结(小结)
Aug 16 Javascript
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
VuePress 快速踩坑小结
Feb 14 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 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
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
input的focus方法使用
2010/03/13 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
Python函数生成器原理及使用详解
2020/03/12 Python
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
毕业自荐信
2013/12/16 职场文书
24岁生日感言
2014/01/13 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
信息技术教学反思
2014/02/12 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
先进工作者事迹材料
2014/12/23 职场文书
2015年母亲节寄语
2015/03/23 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA