์ผ์ชฝ ์ํํธ (<<)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itโs been available across browsers since โจ2015๋ 7์โฉ.
์ผ์ชฝ ์ํํธ (<<
) ์ฐ์ฐ์๋ ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ฅผ ๋ช
์๋ ๋นํธ ์(32์ ๋๋จธ์ง)๋งํผ ์ผ์ชฝ์ผ๋ก ์ด๋ํฉ๋๋ค. ์ผ์ชฝ์ผ๋ก ์ด๋๋ ์ด๊ณผ ๋นํธ๋ ํ๊ธฐ๋ฉ๋๋ค. ์ค๋ฅธ์ชฝ์ ์์ง์ธ ๋นํธ ์ ๋งํผ 0๋นํธ๋ก ์ฑ์์ง๋๋ค.
์๋ํด ๋ณด๊ธฐ
const a = 5; // 00000000000000000000000000000101
const b = 2; // 00000000000000000000000000000010
console.log(a << b); // 00000000000000000000000000010100
// Expected output: 20
๊ตฌ๋ฌธ
a << b
์ค๋ช
์ด ์ฐ์ฐ์๋ ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ฅผ ๋ช ์ํ ๋นํธ ์๋งํผ ์ผ์ชฝ์ผ๋ก ์ด๋ํฉ๋๋ค. ์ผ์ชฝ์ผ๋ก ์ด๋๋ ์ด๊ณผ ๋นํธ๋ ํ๊ธฐ๋ฉ๋๋ค. ์ค๋ฅธ์ชฝ์ ์์ง์ธ ๋นํธ ์ ๋งํผ 0 ๋นํธ๋ก ์ฑ์์ง๋๋ค.
์๋ฅผ ๋ค์ด, 9 << 2
์ 36์ด ๋์ถ๋ฉ๋๋ค.
9 (10์ง์): 00000000000000000000000000001001 (2์ง์) -------------------------------- 9 << 2 (10์ง์): 00000000000000000000000000100100 (2์ง์) = 36 (10์ง์)
์์์ ์ซ์ x
๋ฅผ ์ผ์ชฝ์ผ๋ก y
๋นํธ ๋จ์๋ก ์ด๋ํ๋ฉด x * 2 ** y
์
๋๋ค. ๊ทธ๋์ ์๋ฅผ ๋ค์ด
9 << 3
์ 9 * (2 ** 3) = 9 * (8) = 72
์ผ๋ก ํด์๋ฉ๋๋ค.
์ผ์ชฝ ํผ์ฐ์ฐ์๋ 32๋นํธ ์ ์๋ก ๋ณํ๋ฉ๋๋ค. ์ฆ, ๋ถ๋ ์์์ ์ซ์๋ ์๋ฆฌ๊ณ 32๋นํธ ๊ฒฝ๊ณ ๋ด์ ์์ง ์์ ์ซ์๋ ์ค๋ฒํ๋ก์ฐ/์ธ๋ํ๋ก์ฐ๋ฉ๋๋ค.
์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์๋ ๋ถํธ ์๋ 32๋นํธ ์ ์๋ก ๋ณํ๋ ๋ค์ 32 ๋๋จธ์ง ์ฐ์ฐ์ ๊ฐ์ ๊ฐ์ ธ์ค๋ฏ๋ก ์ค์ ์ํํธ ์คํ์
์ ํญ์ 0์์ 31 ์ฌ์ด์
์์ ์ ์์
๋๋ค. ์๋ฅผ ๋ค์ด, 100 << 32
๋ 100 << 0
๊ณผ ๋์ผ(์ด ๊ฒฐ๊ณผ๊ฐ์ 100
์
๋๋ค)ํฉ๋๋ค. 32 ๋๋จธ์ง ์ฐ์ฐ์
0์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
์์
์ผ์ชฝ ์ํํธ ์ฌ์ฉํ๊ธฐ
9 << 3; // 72
// 9 * (2 ** 3) = 9 * (8) = 72
๋ช ์ธ์
Specification |
---|
ECMAScriptยฎ 2026 Language Specification # sec-left-shift-operator |
๋ธ๋ผ์ฐ์ ํธํ์ฑ
Loadingโฆ