403 Stimmen

JavaScript OR (||) Erklärung der Variablenzuweisung

Mit diesem JavaScript-Schnipsel...

var a;
var b = null;
var c = undefined;
var d = 4;
var e = 'five';

var f = a || b || c || d || e;

alert(f); // 4

Kann mir bitte jemand erklären, wie diese Technik genannt wird (meine beste Vermutung steht im Titel dieser Frage!)? Und wie/warum sie genau funktioniert?

Nach meinem Verständnis ist die Variable f wird der nächstgelegene Wert (von links nach rechts) der ersten Variablen zugewiesen, die einen Wert hat, der nicht entweder null oder undefiniert ist, aber ich habe es nicht geschafft, viel Referenzmaterial über diese Technik zu finden, und ich habe gesehen, dass sie oft verwendet wird.

Ist diese Technik auch spezifisch für JavaScript? Ich weiß, dass etwas Ähnliches in PHP zu folgenden Ergebnissen führen würde f einen wahren booleschen Wert hat, anstatt den Wert von d selbst.

1voto

tvanfosson Punkte 506878

Es wertet X aus und weist es z zu, wenn X nicht null, die leere Zeichenkette oder 0 (logisch falsch) ist. Wenn X null, die leere Zeichenkette oder 0 (logisch falsch) ist, weist es z y zu.

var x = '';
var y = 'bob';
var z = x || y;
alert(z);

Wird 'bob' ausgegeben;

1voto

Alon Brontman Punkte 61

Nach Angaben der Bill Higgins' Blog Posten; das Javascript Idiom der logischen OR-Zuweisung (Feb. 2007), ist dieses Verhalten (zumindest) ab v1.2 zutreffend

Er schlägt auch eine andere Verwendung dafür vor (zitiert): " Leichtgewichtige Normalisierung der Unterschiede zwischen den Browsern "

// determine upon which element a Javascript event (e) occurred
var target = /*w3c*/ e.target || /*IE*/ e.srcElement;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X