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 Excel操作知识点
Apr 24 Javascript
jquery JSON的解析方式
Jul 25 Javascript
js获取当前月的第一天和最后一天的小例子
Nov 18 Javascript
javascript 获取iframe里页面中元素值的方法
Feb 17 Javascript
Jquery方式获取iframe页面中的 Dom元素
May 07 Javascript
table行随鼠标移动变色示例
May 07 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
jquery实现用户打分评分特效
May 28 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
详解ES6 系列之异步处理实战
Oct 26 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 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转成EXE文件
2006/10/09 PHP
php下使用SMTP发邮件的代码
2008/01/10 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
PHP安全性漫谈
2012/06/28 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
DHTML Slide Show script图片轮换
2008/03/03 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
质量月口号
2014/06/20 职场文书
道歉信范文
2015/05/12 职场文书
在CSS中使用when/else的方法
2022/01/18 HTML / CSS