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里的条件判断
Feb 27 Javascript
js获取url参数的使用扩展实例
Dec 29 Javascript
关于IE7 IE8弹出窗口顶上
Dec 22 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
在网页中插入百度地图的步骤详解
Dec 02 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
微信小程序开发(二)图片上传+服务端接收详解
Jan 11 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
Mar 29 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
Sep 21 Javascript
vue axios post发送复杂对象问题
Jun 04 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
Mar 29 Javascript
js实现随机点名
Jan 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中heredoc的使用方法
2013/06/17 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
php测试kafka项目示例
2020/02/06 PHP
extjs 为某个事件设置拦截器
2010/01/15 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
用Python进行基础的函数式编程的教程
2015/03/31 Python
Python实现线程池代码分享
2015/06/21 Python
python中异常报错处理方法汇总
2016/11/20 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
python设置中文界面实例方法
2020/10/27 Python
自我鉴定范文
2013/11/10 职场文书
八年级生物教学反思
2014/01/22 职场文书
犯错检讨书
2014/02/21 职场文书
联谊活动总结
2014/08/28 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL
Linux中sftp常用命令整理
2022/06/28 Servers
python语言中pandas字符串分割str.split()函数
2022/08/05 Python