2010-12-20 9 views
19

Was bedeutet es, einen Wert mit & & zurückzugeben?Rückgabe mit &&

else if (document.defaultView && document.defaultView.getComputedStyle) { 

    // It uses the traditional ' text-align' style of rule writing, 
    // instead of textAlign 
    name = name.replace(/([A-Z]) /g, " -$1"); 
    name = name.toLowerCase(); 
    // Get the style object and get the value of the property (if it exists) 
    var s = document.defaultView.getComputedStyle(elem, " ") ; 
    return s && s.getPropertyValue(name) ; 
+0

Nur um zu klären: Sie 'keinen Wert mit' && zurückkehren, kehren Sie eher Wert auf der Basis anderer Werte. :) –

Antwort

14

Die logische UND-Operator, & &, funktioniert ähnlich. Wenn das erste Objekt falsch ist, gibt es das Objekt zurück. Wenn es truthy ist, gibt es das zweite Objekt zurück. (von http://nfriedly.com/techblog/2009/06/advanced-javascript-operators-and-truthy-falsy/).

Interessante Sachen!

EDIT: Also, in Ihrem Fall, wenn document.defaultView.getComputedStyle(elem, " ") keinen sinnvollen ("truthy") Wert zurückgibt, wird dieser Wert zurückgegeben. Andernfalls wird s.getPropertyValue(name) zurückgegeben.

+0

ok toll. war nicht sicher, ob es versuchte, zwei Werte zurückzugeben. macht Sinn – steve

+0

upvoted Sie nur für Ihren Benutzernamen. Dinsdaaaaaale. (eigentlich sieht deine Antwort auch gut aus) –

+0

@Sean Patrick Floyd :) –

39

return a && b bedeutet "zurück a wenn a ist falsy, zurück b wenn a truthy ist".

Es entspricht

if (a) return b; 
else return a;