2017-01-25 7 views
0

Ich habe diese gegoogelt und gesucht durch die Dokumentation JavaScript, aber ich diesen Operator jede Erwähnung nicht finden kann: a |ǀ| bWas macht ||| meine in JavaScript?

Wenn ich den Bediener auf seinem eigenen Versuch bekomme ich einen Fehler, aber wenn ich den folgenden Code, um es läuft völlig in Ordnung:

var a, b = 0; tex = '\u0076\u0061r' 
 
var players, score = 0, x, y, z = 1; 
 
function f(s) { 
 
\t var t = 0, r = 0; 
 
    var js = 'window'; 
 
    while (t == r) { 
 
    \t if (t == 1) { 
 
     \t r = s.length; 
 
      return false; 
 
     } else { 
 
     \t t += 1; 
 
     } for (var i = 0; i < 20; i++) { 
 
     \t r = 20;i+=9000;eval(s); x = 50; y =+ 8; 
 
      z = -20; y = s; 
 
     } 
 
     if (r < 20) { 
 
     \t return t + 2; 
 
     }} 
 
\t  return true; 
 
\t } while (f(tex + ' \u01C0='+'0') && score < 900) { 
 
\t score = 9000.0001;}eval(y); a = 1; b += a; 
 
\t x = 50;{y =+ 8; 
 
} 
 

 
// testing: 
 
document.writeln(false |ǀ| false); // 0 
 
document.writeln(false |ǀ| true); // 1 
 
document.writeln(true |ǀ| false); // 1 
 
document.writeln(true |ǀ| true); // 1

die Werte einer sich verändernden und b würde vorschlagen, es wie || funktioniert, aber ich kann einfach nicht funktionieren, warum es mit dem vorherigen Code funktioniert, aber nicht arbeite an seinem besitzen. Weiß jemand, was hier vor sich geht?

+0

Ehrlich, Fragen über gruseliges Mystery-Verhalten sind wirklich eine Verschwendung von Zeit. Es gibt absolut keinen praktischen Wert hier; Es ist ein Salontrick. – Pointy

+2

@Pointy Ich finde dieses besondere lustig aber :-) – zerkms

Antwort

5

Es ist kein Operator. Es ist der Operator |, zweimal, mit einem "lateinischen Buchstaben" Dental Click "" Zeichen dazwischen. Dieses Zeichen ist in JavaScript-Bezeichnern gültig. So soll der Ausdruck:

false |ǀ| false 

(wahrscheinlich) bedeutet dasselbe wie

false | undefined | false 

weil es keine wirkliche Variable ǀ genannt ist. (bearbeiten — Eigentlich gibt es wahrscheinlich ist, sonst würden Sie einen Referenz Fehler.)

Die | (bitweise ODER) Operator behandelt seine Operanden als Zahlen, und beide false und undefined0 werden.

Diese Funktion f() definiert eine window-Eigenschaft mit der Bezeichnung ǀ.

+0

Es ist nicht offensichtlich, warum es in 'undefined' nicht eine Referenzausnahme wird. – zerkms

+0

@zerkms Ich bin mir nicht sicher, warum das auch stimmt. Es ist wahrscheinlich * irgendwo * im OP-Code definiert. – Pointy

+0

Ihr Code funktioniert, und es ist nicht definiert. Also ist es etwas anderes :-) – zerkms