要查看天气,元素是否存在我正在使用
if($('#id').length)
//statement 1
else
//statement 2
这对我来说很好。但是当条件为真时,statement1将执行,否则将执行statement2。但是当长度返回长度时它是如何工作的(它是一个数字,如1,2 ......)
我认为如果长度为0,则false
为0
。但剩下的情况又如何呢?我无法理解这里发生了什么。提前谢谢......
答案 0 :(得分:3)
任何不是的价值 undefined,null,0,NaN或空字符串(“”)以及任何对象, 包括一个值为false的Boolean对象,计算结果为true 传递给条件语句时
这意味着当长度为1
(或者更高但是对于此选择器不会发生)时,它的计算结果为真。
因此,当找到标识为id
的元素时,将执行statement 1
。当长度为0
时,则执行statement 2
。
答案 1 :(得分:2)
以下是Chrome控制台的一些输出,可能会对您有所帮助:
> Boolean(1) //The number 1
true
> Boolean(0) //The number 0
false
> Boolean(0.0000000000000000000000000000000000000000001) //A very close to 0 float
true
> Boolean(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001) //This is where it starts rounding down to zero
false
> Boolean(false) //A boolean "false"
false
> Boolean(NaN) //Not a number
false
> Boolean(undefined) //Undefined
false
> Boolean("") //An empty string
false
> Boolean(-3) //A negative number
true
> Boolean("string") //A string that is not empty
true
> Boolean([]) //An empty array
true
> Boolean({}) //An empty object
true
> Boolean(2.5) //A float
true
..因此,如果length为0(如:无法找到元素),那么它不会计算为true
,因此会选择} else {
语句。
答案 2 :(得分:0)
Javascript的概念为truthy/falsy,其中0
,false,undefined
和null
等值被认为是假的,而其他值则被认为是真实的。
如果长度为0
则会变为假,且条件会失败,否则如果长度为!= 0则该值被认为是真实的,条件将成功。
答案 3 :(得分:-1)
是的,这就是javascript的工作原理
这里的解释
In JavaScript, why is "0" equal to false, but when tested by 'if' it is not false by itself?