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 相关文章推荐
对象的类型:本地对象(1)
Dec 29 Javascript
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 Javascript
50个比较实用jQuery代码段
Sep 18 Javascript
判断ie的两种简单方法
Aug 12 Javascript
告诉你什么是javascript的回调函数
Sep 04 Javascript
jQuery的css()方法用法实例
Dec 24 Javascript
Js apply方法详解
Feb 16 Javascript
vue.js的提示组件
Mar 02 Javascript
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
详解react-refetch的使用小例子
Feb 15 Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 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核心代码分析require和include的区别
2011/01/02 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
php文件上传类的分享
2017/07/06 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
javascript json2 使用方法
2010/03/16 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
浅析Python中的多条件排序实现
2016/06/07 Python
Python如何判断数独是否合法
2016/09/08 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
python科学计算之narray对象用法
2019/11/25 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
就业自荐书
2013/12/05 职场文书
骨干教师培训感言
2014/01/16 职场文书
幼儿园感谢信
2015/01/21 职场文书
电影红河谷观后感
2015/06/11 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
7个关于Python的经典基础案例
2021/11/07 Python