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 相关文章推荐
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
Jun 18 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
Aug 22 Javascript
利用jQuery实现可输入搜索文字的下拉框
Oct 23 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
javascript中substring()、substr()、slice()的区别
Aug 30 Javascript
Web开发必知Javascript技巧大全
Feb 23 Javascript
Bootstrap 模态框实例插件案例分析
Dec 28 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
详解vue.js的devtools安装
May 26 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
Javascript的this详解
Mar 23 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
JavaScript 学习笔记(五)
2009/12/31 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
简述Python中的进程、线程、协程
2016/03/18 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
python 性能优化方法小结
2017/03/31 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
python Opencv将图片转为字符画
2021/02/19 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
股东授权委托书范本
2014/09/13 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS