if(xx)的判断
if语句是编程语言最常用的语句,语法:
if(condition){
//true statement
}else {
//false statement
}
if通过布尔值判断结果,如果表达式为真执行第一个代码块内语句,如果为假执行第二个代码块内语句,其中condition可以是任意表达式,当condition不为布尔值时,会将condition强制转换为布尔值,如:
if(0) {
console.log('0')
}else if(1) {
console.log('1')
}
if(''){
console.log("no")
}else if(" ") {
console.log("empty")
}
输出结果
if(0)为false,if(1)为true,输出结果为1,if("")为false,if(" ")为true,输出结果为empty。
为什么?
Number为+0, −0,或者 NaN 时为 false,其他为 true,所以第一个输出1;
String是空字符串为 false,其他都为 true,所以第二个输出结果为empty;
转换为布尔值后if通过结果的false或true判断是输出还是执行下一个语句。
a==b
一、a和b的数值和类型都相同时
a==b,当a和b的数值和类型都相同时,严格的执行相等的运算。
二、当a和b的数值类型不相同
a==b,当a和b的数值类型不相同时:
1.如果a和b一个是null,一个是undefined时,相等。
2.如果a和b一个是数字,一个是字符串,先将字符串转为数字,然后比较。
3.如果a和b一个值是true,一个值是false则将其转为1和0比较。
4.如果a和b一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较。
5.其它情况都不相等。