(前言:这也是前端面试的高频考点,虽然平时大家肯定都接触过或经常使用,但这个问题真的较起真来细细的问,相信很多人都会懵,在《你不知道的js:中卷》里有对这块知识较为详细的详细介绍,推荐大家去看看)
正文 :
==在比较两个不同类型的值时会发生隐式类型转换,会将其中之一或两者都转换为相同类型后再进行比较。
===是严格比较两个值相等(两个特例,NaN不等于NaN,+0等于-0),不会发生隐式类型转换。
那具体转换的规则是什么呢?
一、字符串和数字做相等比较,会把字符串转为数字
var a = 10;
var b = "10";
a==b //true
a===b //false
二、有布尔值的,把布尔值转为数字