x=10之间的Javascript差异;if(x)和if(x==10)
我从布尔的角度理解这一点x=10之间的Javascript差异;if(x)和if(x==10),javascript,if-statement,Javascript,If Statement,我从布尔的角度理解这一点 x=true; if(x)//这与if(x==True)相同 doSomething() 但是如果把x设为一个数字,那么if条件意味着什么呢? 该条件是否表示如果(x==true)?如果是,为什么会这样?在javascript中,下面的内容是错误的 false 未定义 null 0 ” NaN 除上述内容外的任何内容都是真实的,包括数字,除了0。因此10是一个真实值,因此执行if块。简言之如下: //!length = if(x.length); var a;
x=true;
if(x)//这与if(x==True)相同
doSomething()代码>
但是如果把x设为一个数字,那么if条件意味着什么呢?
该条件是否表示如果(x==true)?如果是,为什么会这样?在javascript中,下面的内容是错误的
false
未定义
null
0
”
NaN
除上述内容外的任何内容都是真实的,包括数字,除了0
。因此10
是一个真实值,因此执行if
块。简言之如下:
//!length = if(x.length);
var a; //undefined == if(!a) == !length
var b = ""; //void == if(!b)
var c = " "; //blank == if(c) == length
var d = "text"; //there == if(d) == length
var e = true; //true == true == if(e)
var f = false; //false == false == if(!f)
var g = null; //false == if(!g) == !length
var h = 0; //0 == if(!h)
var i = 1; //true == if(i)
var j = 0/0; //NaN == if(!j)
var k = document.body; // == if(k)
var l = document.getElementById("nothing"); // if(!l) == !length
Javascript在检查“null
”值方面非常灵活。我猜您实际上是在寻找空字符串,在这种情况下,这个更简单的代码可以工作:
if(!blah){
它将检查空字符串(”
)、null
、undefined
、false
以及数字0
和NaN
var-a//未定义==如果(!a)=!长度
var b=“”//void==如果(!b)
var c=“”//空白==如果(c)=长度
var d=“text”//这里==如果(d)=长度
var e=真//真==真==如果(e)
var f=假//false==false==if(!f)
var g=null//false==如果(!g)==!长度
var h=0//0==如果(!h)
var i=1//真==如果(i)
var j=0/0//NaN==如果(!j)
var k=document.body;//==如果(k)
var l=document.getElementById(“无”);//如果(!l)==!长度
康赛托尔(l);
功能控制台总计(bb){
consolea(bb);
consoleb(bb);
康索尔EC(bb);
安慰(bb);
安慰者(bb);
}
功能控制台A(bb){
如果(bb){
控制台日志(“是”+bb);
}
}
功能控制台B(bb){
如果(bb==真){
console.log(“true”+bb);
}
}
功能控制台(bb){
如果(bb==false){
控制台日志(“假”+bb);
}
}
功能控制台(bb){
if(!bb){
控制台日志(“否”+bb);
}
}
功能控制台(bb){
if(bb.长度){
控制台日志(“长度”+bb);
}
}
了解JavaScript中的真实/错误:inhttp://www.sitepoint.com/javascript-truthy-falsy/I 建议您阅读-->if(x)
与if(Boolean(x))
相等,无论x
@Chintan的值现在是否合理。谢谢你的链接。@AlexanderO'Mara是的。那个也是假的。