Bitweises OR (|)
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Der bitweise OR (|) Operator gibt eine Zahl oder einen BigInt zurück, deren binäre Darstellung in jeder Bitposition eine 1 hat, für die die entsprechenden Bits eines oder beider Operanden 1 sind.
Probieren Sie es aus
const a = 5; // 00000000000000000000000000000101
const b = 3; // 00000000000000000000000000000011
console.log(a | b); // 00000000000000000000000000000111
// Expected output: 7
Syntax
x | y
Beschreibung
Der | Operator ist für zwei Typen von Operanden überladen: Zahl und BigInt. Für Zahlen gibt der Operator einen 32-Bit-Ganzzahl zurück. Für BigInts gibt der Operator einen BigInt zurück. Zuerst werden beide Operanden in numerische Werte umgewandelt und deren Typen überprüft. Es wird eine BigInt-OR-Operation durchgeführt, wenn beide Operanden zu BigInts werden; andernfalls werden beide Operanden in 32-Bit-Ganzzahlen umgewandelt und eine bitweise OR-Operation für Zahlen durchgeführt. Eine TypeError wird ausgelöst, wenn ein Operand ein BigInt wird, aber der andere eine Zahl.
Der Operator operiert auf den Bit-Darstellungen der Operanden im Zweier-Komplement. Jedes Bit im ersten Operanden wird mit dem entsprechenden Bit im zweiten Operanden gepaart: erstes Bit zu erstem Bit, zweites Bit zu zweitem Bit usw. Der Operator wird auf jedes Bitpaar angewendet, und das Ergebnis wird bitweise konstruiert.
Die Wahrheitstabelle für die OR-Operation ist:
| x | y | x OR y | 
|---|---|---|
| 0 | 0 | 0 | 
| 0 | 1 | 1 | 
| 1 | 0 | 1 | 
| 1 | 1 | 1 | 
     9 (base 10) = 00000000000000000000000000001001 (base 2)
    14 (base 10) = 00000000000000000000000000001110 (base 2)
                   --------------------------------
14 | 9 (base 10) = 00000000000000000000000000001111 (base 2) = 15 (base 10)
Zahlen mit mehr als 32 Bits werden bei den höchstwertigen Bits abgeschnitten. Zum Beispiel wird die folgende Ganzzahl mit mehr als 32 Bits in eine 32-Bit-Ganzzahl konvertiert:
Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001
Warnung:
Sie könnten sehen, dass Leute | 0 verwenden, um Zahlen auf Ganzzahlen zu kürzen. Das bitweise OR einer beliebigen Zahl x mit 0 gibt x konvertiert zu einer 32-Bit-Ganzzahl zurück, was zusätzlich führende Bits für Zahlen außerhalb des Bereichs -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessen Math.trunc().
Für BigInts gibt es keine Trunkierung. Konzeptionell verstehen Sie positive BigInts als mit einer unendlichen Anzahl von führenden 0-Bits, und negative BigInts als mit einer unendlichen Anzahl von führenden 1-Bits.
Beispiele
>Verwendung von bitweisem OR
// 9  (00000000000000000000000000001001)
// 14 (00000000000000000000000000001110)
14 | 9;
// 15 (00000000000000000000000000001111)
14n | 9n; // 15n
Spezifikationen
| Specification | 
|---|
| ECMAScript® 2026 Language Specification> # prod-BitwiseORExpression> | 
Browser-Kompatibilität
Loading…