检查天气元素是否存在我正在使用
if($('#id').length)
//statement 1
else
//statement 2
它对我来说很好。但是 statement1 将在条件为真时执行,否则 statement2 将执行。但是当长度返回长度时它是如何工作的(它是一个像 1 , 2 ... 的数字)
我想如果长度为 0,那么它false
就是0
. 但是剩下的病例呢。我无法理解这里发生了什么。提前致谢...
检查天气元素是否存在我正在使用
if($('#id').length)
//statement 1
else
//statement 2
它对我来说很好。但是 statement1 将在条件为真时执行,否则 statement2 将执行。但是当长度返回长度时它是如何工作的(它是一个像 1 , 2 ... 的数字)
我想如果长度为 0,那么它false
就是0
. 但是剩下的病例呢。我无法理解这里发生了什么。提前致谢...
如果来自MDN:
任何非 undefined、null、0、NaN 或空字符串 ("") 的值,以及任何对象,包括值为 false 的布尔对象,在传递给条件语句时计算结果为 true
这意味着当长度为1
(或更大,但此选择器不会发生)时,它的计算结果为 true。
id
因此,当找到具有 id 的元素时,将statement 1
执行 。当长度为 时0
,则statement 2
执行。
Here's some output from the chrome console, that might help you:
> 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
..hence, if length is 0 (as in; the element could not be found) then it does not evaluate to true
and therefore chooses the } else {
statement instead.
Javascript 有一个真/假的概念,其中像0
, falseundefined
和null
等值被认为是假的,而其他值被认为是真值。
如果长度为0
假,则条件失败,否则如果长度!= 0,则认为该值为真,条件成功。