In the following code
var $next = $active.next().length ? $active.next()
: $('#slideshow IMG:first');
the part ‘$active.next().length’ doesn’t seem to compare anything and I don’t understand how the condition is determined to be True or False.
Or is it saying that:
if the various $next is equal to $active.next().length then the condition is true?
In javascript any expression can be converted to a truthy or falsy value and hence is valid in a comparison place. The values which are false in javascript are
false0""(empty string)nullundefinedNaNIn this case
lengthrefers to a numeric value and if it evaluates to0then it will be considered falsy. Otherwise it will be truthy