2016-03-20 11 views
0

Da ich einen Javascript-Interpreter schreibe, muss ich einige grundlegende Funktionen implementieren. Ich habe in meiner Chrome-Konsole ein wenig herumgespielt. Ich habe dieses seltsame Verhalten in js entdeckt. Wie kann ich interpretieren, was js in diesem speziellen Fall macht?Javascript && Betreiberverhalten in Chrom V8

and operator

Dank

Antwort

4

&& Bedienungs Javascript gibt den linken Teil, wenn es zu false umgewandelt werden kann, gibt sonst den rechten Teil.

In beiden Fällen erhalten Sie den Ausdruck auf der rechten Seite (da weder 012 noch true in false konvertiert werden kann). Für den ersten Fall true und für den zweiten Fall 012.

Seit 012 Oktal ist, sind Sie immer 10 Ausgang, der die Basis 10 Darstellung von Oktal ist 12

ich nicht eine bessere Verbindung für eine Quelle finden, so dass ich dieses eine Zitat (es ist nicht V8 spezifisch, sondern sollte) tun: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

Logisches UND (& &)

ausdr1 & & expr2

Returns expr1 wenn es in false umgewandelt werden; Andernfalls wird expr2 zurückgegeben. Bei Verwendung mit booleschen Werten gibt & & daher true zurück, wenn beide Operanden in true umgewandelt werden können. Andernfalls wird false zurückgegeben.

(fett ist von mir)

2

So wie ich die && und || Operatoren interpretieren ist wie folgt:

a && b = a ? b : a; 

a || b = a ? a : b; 
Verwandte Themen