Javascript if(var.length>;0){}和if(var){}之间的差异
在javascript中,使用Javascript if(var.length>;0){}和if(var){}之间的差异,javascript,variables,Javascript,Variables,在javascript中,使用 if (foo.length > 0) { //run code involving foo } 及 如果是这样的话,请有人解释一下两者的区别,并举例说明它们不一样的地方吗?这两者是完全不同的。我通过使用.length假设var是一个jquery对象,在这种情况下if(var)将始终为真。jQuery将始终返回一个对象,但它可能是空的if(var.length>0)检查jquery对象是否实际包含一个元素。前一个测试var.length返回的值是否大于0。
if (foo.length > 0) {
//run code involving foo
}
及
如果是这样的话,请有人解释一下两者的区别,并举例说明它们不一样的地方吗?这两者是完全不同的。我通过使用
.length
假设var
是一个jquery对象,在这种情况下if(var)
将始终为真。jQuery将始终返回一个对象,但它可能是空的if(var.length>0)
检查jquery对象是否实际包含一个元素。前一个测试var.length返回的值是否大于0。后者测试var的值是否为真
不能对所有变量都使用其中一个。对于布尔型,if(var)更有意义。对于字符串或数组,if(var.length)更有意义。这里有一个例子,它们不一样:
var x = [];
alert(x? 'yes' : 'no'); // displays "yes"
alert((x.length > 0)? 'yes' : 'no'); // displays "no"
他们显然不同,问题是他们为什么不同 第一个示例是明确检查对象的length属性是否大于0。如果这是真的,它将计算if语句的内容
第二个例子只能告诉你变量是“truthy”还是“falsy”(或者像伟大的斯蒂芬·科尔伯特(stephen colbert)所说的“truthyness”)。查看详细信息。您是否打算比较
if(foo.length)
和if(foo.length>0)
?
var x = [];
alert(x? 'yes' : 'no'); // displays "yes"
alert((x.length > 0)? 'yes' : 'no'); // displays "no"