2010-12-27 18 views
2

Ich arbeitete mit einem Base64-Codierungsskript, aber es wirft eine Menge Warnungen in JSLint.Bedeutung von >>, <<, | und & JavaScript

Kann mir jemand sagen, was diese Symbole in JavaScript bedeuten?

>>, <<, |, &

Hier ist ein Beispiel von Code mit diesen Symbolen:

if ((c > 127) && (c < 2048)) { 
    utftext += String.fromCharCode((c >> 6) | 192); 
    utftext += String.fromCharCode((c & 63) | 128); 
} 

Ich mag würde dies umzuschreiben, dass sie durch JSLint validiert wird.

+0

Gute Referenzen helfen https://developer.mozilla.org/en/JavaScript/Reference/Operators – epascarello

Antwort

5

Diese Symbole beziehen sich auf bestimmte bitwise operations.

>> Right shift 
<< Left shift 
| Bitwise OR 
& Bitwise AND 

Lesen Sie auf der verlinkten Wikipedia-Seite für weitere Informationen über was sie tun.

Siehe unter here, warum JSLint bei diesen Vorgängen warnt. Es hat hauptsächlich mit der Effizienz zu tun (d. H. JavaScript verwendet intern Gleitkommazahlen und es ist ineffizient, zu Ganzzahlen und zurück mit bitweisen Operatoren zu konvertieren).

Rechtsverschiebung und Linksverschiebung können durch Division durch bzw. Multiplikation mit 2 ersetzt werden.

0

Dies wird immer gefragt, aber es ist schwierig für einige das richtige Wort zu finden.

Das sind bitwise operators.

0

JSLint validiert es für mich, wenn ich die c und utftext Variablen deklariere. Ich sehe es nicht, sich über irgendeinen dieser Betreiber zu beschweren.

+1

nicht, wenn Sie "die guten Teile" eingeschaltet haben. – Couto

+0

@Couto ah, fair genug. –

Verwandte Themen