左シフト (<<)

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 進数)

任意の数 xy ビット分だけ左にビット単位にずらすと、 x * 2 ** y になります。 ですから、例えば 9 << 39 * (2 ** 3) = 9 * (8) = 72 になります。

左シフトの使用

js
9 << 3; // 72

// 9 * (2 ** 3) = 9 * (8) = 72

仕様書

Specification
ECMAScript® 2025 Language Specification
# sec-left-shift-operator

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Bitwise left shift (a << b)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報