我感興趣的使用&&
這樣的聲明變量的實際應用:使用邏輯與在Javascript變量聲明
var x = undefined && 4;
// Evaluate to the first falsey value
// or else the last value.
eval(x);
// undefined
我理解的價值是如何計算(見this SO answer)。我也明白了它的姊妹||
(見here爲一個偉大的描述),爲什麼它來聲明一個變量,下面的表達式將是有益的:
// Some other variable
var y;
var x = y || 4;
// Evaluate to the first truthy value
// or else the last value.
實際上:除非首先看重的是falsey使用第一個值;如果是這樣,請使用最後一個值。我們可以證明在瀏覽器控制檯的||
這一特點:
> null || 4
4
> 4 || null
4
> null || undefined
undefined
> undefined || null
null
> true || 4
true
> 4 || true
4
至於&&
:
> null && 4
null
> 4 && null
null
> null && undefined
null
> undefined && null
undefined
> true && 4
4
> 4 && true
true
如果我們認爲這意味着:除非首先看重的是truthy使用第一個值;如果是這樣,使用最後一個值?
我有興趣使用編碼快捷方式來最大限度地減少條件語句的使用,並且我想知道我能否以某種方式使用這個。
我發現了jQuery核心源的line 472這種編碼方法的一個例子:
scripts = !keepScripts && [];
所以,問題是這樣的:任何人都可以形容一個很好的上下文在JavaScript變量聲明使用&&
?你認爲這是不好的做法嗎?
謝謝!
我個人建議不要這樣做:它確實不太可讀。在不知道這種行爲的情況下,我期望像'!keepScripts && []'這樣的東西能夠評估爲'false',這可能會導致一些難以追蹤的錯誤。 – ChrisC 2013-02-19 21:55:50
我會編寫普通的條件語句,然後使用高級的縮小器,例如[Google Closure Compiler](https://developers.google.com/closure/compiler/)來縮小代碼。 – 2013-02-19 22:00:40