规则很简单:&&如果它是假的,则返回它的第一个参数.否则,它会评估并返回其第二个参数.
所以
nil && false
Run Code Online (Sandbox Code Playgroud)
和
false && nil
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,第一个参数都是假的.(nil并且false是评估falsy的唯一两个值),因此表达式的结果是第一个参数.
第二个参数也恰好是假的事实并不重要.实际上,由于短路,第二个参数未被评估.