Jquery 无法理解此函数的工作原理

Jquery 无法理解此函数的工作原理,jquery,Jquery,检查我正在使用的元素是否存在 if($('#id').length) //statement 1 else //statement 2 这对我来说很好。但当条件为true时,将执行语句1,否则将执行语句2。但是,当长度返回长度时,它是如何工作的(它是一个类似于1,2…) 我想如果长度是0,那么对于0,它将取false。但剩下的病例呢。我无法理解这里发生了什么。提前感谢…来自: 任何不可用的值 未定义、null、0、NaN或空字符串(“”)以及任何对象, 包

检查我正在使用的元素是否存在

   if($('#id').length)
       //statement 1
   else
      //statement 2
这对我来说很好。但当条件为true时,将执行语句1,否则将执行语句2。但是,当长度返回长度时,它是如何工作的(它是一个类似于1,2…)

我想如果长度是0,那么对于
0
,它将取
false
。但剩下的病例呢。我无法理解这里发生了什么。提前感谢…

来自:

任何不可用的值 未定义、null、0、NaN或空字符串(“”)以及任何对象, 包括值为false的布尔对象,其计算结果为true 当传递给条件语句时

这意味着,当长度为
1
(或更大,但此选择器无法实现)时,其计算结果为true


因此,当找到id为
id
的元素时,执行
语句1
。当长度为
0
时,执行
语句2

Javascript有这样一个概念,其中
0
、false、
未定义的
null
等值被认为是虚假的,而其他值则被认为是真实的


如果长度为
0
,则变为错误,条件将失败,否则,如果长度为=0则该值被视为真实值,条件将成功。

是,这就是javascript的工作方式

这里有一个解释


以下是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

…因此,如果长度为0(如中所示;找不到元素),则它不会计算为
true
,因此选择
}else{
语句。

我认为$('#id')。length返回一个字符串。请尝试praseInt()关于结果…@JayBhatt No,它返回一个数字。为什么要投否决票。请在投否决票之前留下评论