左シフト (<<)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
左シフト演算子 (<<) は、1 つ目のオペランドを指定されたビット数だけ左にずらします。左にずらしてあふれたビットは廃棄されます。0 のビットが右からずれて入ります。
試してみましょう
const a = 5; // 00000000000000000000000000000101
const b = 2; // 00000000000000000000000000000010
console.log(a << b); // 00000000000000000000000000010100
// Expected output: 20
構文
js
a << b;
解説
この演算子は、1 つ目のオペランドを指定されたビット数だけ左にずらします。左にずらしてあふれたビットは廃棄されます。 0 のビットが右からずれて入ります。
例えば 9 << 2 は 36 になります。
js
. 9 (10 進数): 00000000000000000000000000001001 (2 進数)
--------------------------------
9 << 2 (10 進数): 00000000000000000000000000100100 (2 進数) = 36 (10 進数)
任意の数 x を y ビット分だけ左にビット単位にずらすと、 x * 2 ** y になります。
ですから、例えば 9 << 3 は 9 * (2 ** 3) = 9 * (8) = 72 になります。
例
左シフトの使用
js
9 << 3; // 72
// 9 * (2 ** 3) = 9 * (8) = 72
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification # sec-left-shift-operator |