JavaScript 基础系列之 == 和 === 的区别,理解隐式类型转换步骤
yuanyuanbyte opened this issue · 0 comments
yuanyuanbyte commented
本系列的主题是 JavaScript 基础,每期讲解一个技术要点。如果你还不了解各系列内容,文末点击查看全部文章,点我跳转到文末。
如果觉得本系列不错,欢迎 Star,你的支持是我创作分享的最大动力。
== 和 === 的区别,理解隐式类型转换步骤
双等号是相等比较,三等号是严格相等比较。
简而言之,在比较两个值,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同, 只是总会返回 false );
javascript双等号引起类型转换,下面详解:
隐式类型转换步骤
一、首先看双等号前后有没有NaN,如果存在NaN,一律返回false。
二、再看双等号前后有没有布尔,有布尔就将布尔转换为数字。(false是0,true是1)
三、接着看双等号前后有没有字符串, 有三种情况:
1、另一个是对象,对象使用toString()或者valueOf()进行转换;
2、另一个是数字,字符串转数字;
3、另一个也是字符串,直接比较;
4、其他返回false
四、如果是数字,对方是对象,对象取valueOf()或者toString()进行比较, 其他一律返回false
五、null, undefined不会进行类型转换, 但它们俩相等
数据类型转换
在 JS 中类型转换只有三种情况,分别是:
- 转换为布尔值(调用
Boolean()
方法) - 转换为数字(调用
Number()
、parseInt()
和parseFloat()
方法) - 转换为字符串(调用
.toString()
或者String()
方法)
null
和underfined
没有.toString()
方法
博文系列目录
- JavaScript 深入系列
- JavaScript 专题系列
- JavaScript 基础系列
- 网络系列
- 浏览器系列
- Webpack 系列
- Vue 系列
- 性能优化与网络安全系列
- HTML 应知应会系列
- CSS 应知应会系列
交流
各系列文章汇总:https://github.com/yuanyuanbyte/Blog
我是圆圆,一名深耕于前端开发的攻城狮。