条件判断中 两个等号(==)和三个等号(===)的区别

条件判断中 两个等号(==)和三个等号(===)的区别_第1张图片

1、两个等号==是抽象相等运算符;三个等号===是 严格相等运算符

2、两个等号==运算符是在进行必要的类型转换后,再比较

如果比较的值,一个是字符串,一个是数值,则会将字符串转换为数值再比较,会将空字符串转为数值0;

如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。

如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。 js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象(比较麻 烦,我也不大懂)

任何其他组合,都[不相等]

个===等号运算符不会进行类型转换,所以如果两个值不是相同的类型,会直接返回false。

总之:

= 赋值运算符

== 等于
=== 严格等于

你可能感兴趣的:(做项目时遇到的问题,javascript)