if(xx)的判断
if语句会根据里面的条件中的布尔值进行判断,条件为true执行紧凑后续的语句,条件为fasle则执行else后面的语句。
1.if(number)的判断
当number为0、NaN、null时,判断为false,其余值为true。
举例:
var a=5
if(a){
console.log('true')
} // true
a=0
if(a){
console.log('true')
} // false
a=NaN
if(a){
console.log('true')
} //false
a=null
if(a){
console.log('true')
} //false
2.if(string)的判断
当string为空字符时,判断为false,其余值为true。
举例:
if('abc'){
console.log('true')
} // true
if(' '){
console.log('true')
} // true
if(''){
console.log('true')
} // false
3.if(boolean)的判断
boolean值为true,判断为true;boolean值为false,判断为false。
举例:
if(true){
console.log('true')
} // true
if(false){
console.log('true')
} // false
4.if(object)的判断
object对象判断均为true。
举例:
if([1,2]){
console.log('true')
} // true
function f(){
}
if(f()){
console.log('true')
} //true
5.if(undefined)的判断
条件为undefined时判断为false。
举例:
if(undefined){
console.log('true')
} //false
6.if(null)的判断
条件为null时判断为false。
举例:
if(null){
console.log('true')
} //false
a==b的判断
同类型的数值判断相等较为简单,以下主要分析不同类型的数值是否相等。
1. string==number
判断为:toNumber(a)==b,如果a无法转换成number类型判断为false。
其中toNumber(undefined)的结果为NaN、toNumber(null)的结果为0。
"abc" == 0 //false
"abc" == 1 //false
"2" == 2 //true
"" == 0 //true
" " == 0 //true
2.(any)==boolean
在boolean类型转换中,true为1,false为0。
"abc" == true //false
undefined == false //false
undefined == true //false
null == false //false
null == true //false
"" == true //false
"" == false //true
" " == true //false
3.Object==number/string
object会使用valueOf和toString转换后再进行比较。
var obj = {
a: 0,
valueOf: function(){return 1}
}
obj == 1 //true
[] == 0 //true
[2] == 2 //true
参考资料由JS入门-1.关于 if(xx)与 a == b 的判断提供,仅供完成作业任务使用。
网友评论