为什么在这个javascript'If ... Else ...'声明中没有比较声明

Sim*_*Suh 5 javascript if-statement conditional-statements

在以下代码中

var $next =  $active.next().length ? $active.next()
        : $('#slideshow IMG:first');
Run Code Online (Sandbox Code Playgroud)

部分'$ active.next().length'似乎没有比较任何东西,我不明白条件如何被确定为真或假.

或者是说:如果各种$ next等于$ active.next().length那么条件是真的吗?

Jar*_*Par 10

在javascript中,任何表达式都可以转换为truthy或falsy值,因此在比较位置有效.javascript中的值为false

  • false
  • 0
  • "" (空字符串)
  • null
  • undefined
  • NaN

在这种情况下,它length指的是一个数值,如果它的计算结果是,0那么它将被视为假的.否则它将是真实的


bfo*_*ine 5

如果length属性等于0undefined(即$active不是数组),则条件为false.