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之dhDataGrid Ver2.0.0代码
Jul 01 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
JQuery AJAX 中文乱码问题解决
Jun 05 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 Javascript
jQuery自定义多选下拉框效果
Jun 19 jQuery
基于JS实现仿京东搜索栏随滑动透明度渐变效果
Jul 10 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 Javascript
Java Varargs 可变参数用法详解
Jan 28 Javascript
解决Vue项目中tff报错的问题
Oct 21 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
我的论坛源代码(四)
2006/10/09 PHP
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
Python过滤列表用法实例分析
2016/04/29 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
python中pickle模块浅析
2020/12/29 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
总经理秘书的岗位职责
2013/12/27 职场文书
党员志愿者活动方案
2014/08/28 职场文书
农行心得体会
2014/09/02 职场文书
全民创业工作总结
2015/08/13 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python