if(xx)和 a==b的判断

JS的if语句会先对括号内的表达式求值,然后将表达式的结果转换为boolean类型再做判断。转换成boolean类型时遵循下列规则:

如果表达式的值是一个对象,返回true

如果表达式的值是一个空字符串,返回false

如果表达式的值是一个非空字符串,返回true

如果表达式的值是数值0,或NaN,返回false

如果表达式的值是任意非零数值(包括Infinity),返回true

如果表达式的值是null,返回false

如果表达式的值是undefined,返回false

if(xx)和 a==b的判断_第1张图片

例子:

if(xx)和 a==b的判断_第2张图片

a==b的判断

=,==,===这三个运算符区别

=:赋值运算符,用于给变量赋值,不能理解为数学运算中的相等,而是把=右边赋值给=左边。

==:比较运算符,比较两个值,然后返回一个布尔值,表示是否满足比较条件,表示相等。

===:比较运算符,比较两个值,然后返回一个布尔值,表示是否满足比较条件,表示严格相等。

当两个值的类型相同时,==和===没有什么区别,当两个值的类型不同时,===会直接返回false,而==会先转换操作数的类型,再比较它们是否相等。

如果两个值类型相同,则执行严格相等的运算

如果两个值的类型不同

如果一个是null,一个是undefined,那么相等

如果一个是数字,一个是字符串,先将字符串转为数字,然后比较

如果一个值是true/false则将其转为1/0比较

如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较

你可能感兴趣的:(if(xx)和 a==b的判断)