Außerdem :
true ? 1 : 0
Gibt es einen kurzen Trick, der "übersetzen" True->1
und False->0
in Javascript?
Ich habe gesucht, aber keine Alternative gefunden
Was meinst du mit "kurzer Trick"?
Antwort: Gleich wie ~~6.6
ein Trick fürMath.floor
javascript
Royi Namir
quelle
quelle
true + true + true == 3
Antworten:
Viele Möglichkeiten, dies zu tun
// implicit cast +true; // 1 +false; // 0 // bit shift by zero true >>> 0; // 1, right zerofill false >>> 0; // 0 true << 0; // 1, left false << 0; // 0 // double bitwise NOT ~~true; // 1 ~~false; // 0 // bitwise OR ZERO true | 0; // 1 false | 0; // 0 // bitwise AND ONE true & 1; // 1 false & 1; // 0 // bitwise XOR ZERO, you can negate with XOR ONE true ^ 0; // 1 false ^ 0; // 0 // even PLUS ZERO true + 0; // 1 false + 0; // 0 // and MULTIPLICATION by ONE true * 1; // 1 false * 1; // 0
Sie können auch die Division durch verwenden
1
,true / 1; // 1
aber ich würde empfehlen, die Division nach Möglichkeit zu vermeiden.Darüber hinaus haben viele nicht unäre Operatoren eine Zuweisungsversion. Wenn Sie also eine Variable haben, die Sie konvertieren möchten, können Sie dies sehr schnell tun.
Sie können einen Vergleich der verschiedenen Methoden mit diesem jsperf sehen .
quelle
>>>
ist der bitweise Nullverschiebungs-Rechtsverschiebungsoperator .x >>> y
bedeutet "Bewegen Sie jedes Bitx
nach rechtsy
, indem Sie die jetzt leeren Spalten mit0
" füllen . Zu wähleny = 0
bedeutet, dass Sie die Bits nirgendwo hin bewegen, aber trotzdem die Besetzung übernehmen.... oder Sie können
+true
und verwenden+false
quelle
Ein anderer Weg könnte sein
Number()
Number(true) // = 1 Number(false) // = 0
quelle
Sie können verwenden
~~boolean
, woboolean
(offensichtlich) ein Boolescher Wert ist.~~true // 1 ~~false // 0
quelle