jQuery 中 if(something.length) 的含义
Meaning of if(something.length) in jQuery
我正在在线解析一些平滑滚动代码(在 https://css-tricks.com/snippets/jquery/smooth-scrolling/)并找到行 if (target.length) {some stuff}
。 .length
运算符 return 不是整数吗?这如何与 if()
语句一起使用,因为我认为它们只采用 true/false 值?相同的 target.length
在代码稍早的时候被用作三元语句的条件。
JavaScript returns 中的 if
语句对大于(或小于)0 的任何数字都为真,对 0 为假(除此之外还有更多规则我将没有提到这个问题)。因此在您的代码片段中
if (target.length) {some stuff}
如果 target
的长度不为零,将计算 some stuff
。如果 target
的长度为零,可能表示它是空的,则 some stuff
内容将不会计算。
- 如果值不是同一类型,则将进行转换
- 在这种情况下,如果长度为 0(零)- "false" 值;任何不为 0(零)、低于和高于的值都被视为 "true"
你需要了解真实性的概念。 Mozilla's docs 是一个很好的资源,可以查看 javascript
中哪些值是真值或假值
if (target.length) {
do something
}
else {
goes here...
}
这里假设长度大于或等于1,
口译员会将其视为 true
... 否则它将是 false
同理,
如果您的目标是 1
您仍然可以使用
if (target) {
do something ..
}
else {
goes here ..
}
但这里如果目标是 2,它将继续到 2。
因为根据布尔逻辑 1 将被视为 true 而 0 将被视为 false
我正在在线解析一些平滑滚动代码(在 https://css-tricks.com/snippets/jquery/smooth-scrolling/)并找到行 if (target.length) {some stuff}
。 .length
运算符 return 不是整数吗?这如何与 if()
语句一起使用,因为我认为它们只采用 true/false 值?相同的 target.length
在代码稍早的时候被用作三元语句的条件。
JavaScript returns 中的 if
语句对大于(或小于)0 的任何数字都为真,对 0 为假(除此之外还有更多规则我将没有提到这个问题)。因此在您的代码片段中
if (target.length) {some stuff}
如果 target
的长度不为零,将计算 some stuff
。如果 target
的长度为零,可能表示它是空的,则 some stuff
内容将不会计算。
- 如果值不是同一类型,则将进行转换
- 在这种情况下,如果长度为 0(零)- "false" 值;任何不为 0(零)、低于和高于的值都被视为 "true"
你需要了解真实性的概念。 Mozilla's docs 是一个很好的资源,可以查看 javascript
中哪些值是真值或假值if (target.length) {
do something
}
else {
goes here...
}
这里假设长度大于或等于1,
口译员会将其视为 true
... 否则它将是 false
同理,
如果您的目标是 1
您仍然可以使用
if (target) {
do something ..
}
else {
goes here ..
}
但这里如果目标是 2,它将继续到 2。
因为根据布尔逻辑 1 将被视为 true 而 0 将被视为 false