当我使用的值中的任何一个(null,undefined,false,'',0在一)if声明中,它始终评估为谬误(false).此外,这些值((的否定null,undefined,false,'',0)在if声明中始终评估为重言式(true).
if(null){
}else{
}
if(undefined){
}else{
}
if(false){
}else{
}
if(''){
}else{
}
if(0){
}else{
}
Run Code Online (Sandbox Code Playgroud)
在所有上述情况中,if语句被评估为false&elsestatement执行.但是,当我将这些谬误值与==运算符进行比较时,它并不true总是返回.令人惊讶的是,true当我比较这些值的否定时,它总是返回值.
如果double equalto(==)运算符检查/比较值而不是严格的类型,那么为什么:
null == false // returns false
null == 0 // returns false
null == '' // returns false
Run Code Online (Sandbox Code Playgroud)
但, …