๋ณธ๊ฒฉ, ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๊ฒ ์ค๋ช ํ๋ฉฐ ์ค์ค๋ก ์ดํดํ๊ธฐ ๐
๐ฉ๐ป๐ซ ๋จ์ถ ํ๊ฐ๋ ๋ฌด์์ผ๊น์?
ํ ๋ง๋๋ก ๋งํ์๋ฉด, ๋จ์ถ ํ๊ฐ๋ ๋ ๊ฐ์ง ์กฐ๊ฑด ์ค ํ๋๋ง ์ถฉ์กฑ๋๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ๋ด๋๋ ๊ฒ์ด๋๋๋ค. ์์ง ์ด ๊ฐ๋ ์ด ์ ์๋ฟ์ง ์์ ํ ๋ ์์๋ฅผ ํตํด ์ค๋ช ํด ๋ณผ๊ฒ์.
&& : ์ด์ฝ๋ฆฟ ๋จน๊ธฐ ๐ซ
์ฌ๋ฌ๋ถ์ด ์ด์ฝ๋ฆฟ์ด ๋จน๊ณ ์ถ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๊ฒ์ ๋ฐฉ๋ฌธํ์ด์. ๊ฐ๊ฒ์๋ 'ํท์บฃ', 'ํจ๋', 'ํ๋ฆฌ๋ณด' ์ธ ๊ฐ์ง ์ํ์ด ๋ณด์ฌ์. ์ฒซ ๋ฒ์งธ๋ก ํ๋ฆฌ๋ณด๋ฅผ ์ง์๋๋ฐ ๋ฐ๊ตฌ๋๊ฐ ์ด๋ ๊ฒ ๋งํด์.
๐๏ธ: "์๋น , false ์ ๋๋ค! ๋ค์ ๋ด์์ฃผ์ธ์."
let ํ๋ฆฌ๋ณด = false;
let ํจ๋ = true;
ํ๋ฆฌ๋ณด && ํจ๋ // false
์์ผ๊น์?
๋ฐ๋ก ํ๋ฆฌ๋ณด๋ ์ด์ฝ๋ฆฟ(true)์ด ์๋ ์ ค๋ฆฌ(false)๊ธฐ ๋๋ฌธ์ด์์. ๋ฐ๊ตฌ๋๋ ์ฒ์๋ถํฐ false์ธ ํ๋ฆฌ๋ณด๊ฐ ๋ด๊ฒผ๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ์งธ๋ก ๋ด์ ํจ๋๋ฅผ ๋ณผ ํ์๋ ์์ด ๋ค์ ๋๋ ค๋ณด๋ธ ๊ฒ์ด์ฃ .
์ด๋ฒ์ ํ๋ฆฌ๋ณด๊ฐ ์๋ ํท์บฃ์ ๋จผ์ ๋ด์๋ณด์์. ์ด์ฝ๋ฆฟ์ธ ํท์บฃ์ ๋ด์์ผ๋, ์ด์ ๋ ํต๊ณผ๊ฐ ๋๊ฒ ์ฃ ?
let ํท์บฃ = true;
let ํจ๋ = true;
ํท์บฃ && ํจ๋ // true
๐๏ธ: "๋ฉ๋๋! true ์ ๋๋ค. ์ ๋ด์ผ์ จ์ด์."
์ค, ํต๊ณผ ๋์์ด์ ๐
์ฌ๋ฌ๋ถ๋ ์ ์๋ค์ํผ ํท์บฃ์ ์ด์ฝ๋ฆฟ(true)์ด๊ณ , ํจ๋ ๋ํ ์ด์ฝ๋ฆฟ(true)์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๊ตฌ๋๊ฐ true๋ผ๊ณ ์ด์ผ๊ธฐํ ๊ฒ์ด์ฃ .
๊ทธ๋ฌ์, ํธ๊ธฐ์ฌ์ด ์๊ธด ์ฌ๋ฌ๋ถ์ ์ด๋ฒ์ ํ๋ฆฌ๋ณด๋ฅผ ๋ ๋ฒ์งธ๋ก ๋ด์๋ณด๊ธฐ๋ก ํด์.
let ํจ๋ = true;
let ํ๋ฆฌ๋ณด = false;
ํจ๋ && ํ๋ฆฌ๋ณด // false
๐๏ธ: "์๋น , false ์ ๋๋ค! ๋ค์ ๋ด์์ฃผ์ธ์."
์์, ์ญ์๋ ์ด๋ฒ์๋ false์์. ๋น์ฐํ์ฃ ?
์ฒซ ๋ฒ์งธ์ ์ด์ฝ๋ฆฟ(true)์ธ ํจ๋๋ฅผ ๋ด์์ด๋, ๋ ๋ฒ์งธ์ ์ ค๋ฆฌ(false)์ธ ํ๋ฆฌ๋ณด๋ฅผ ๋ด์์ผ๋ ๋ฐ๊ตฌ๋๋ ๋น์ฐํ false๋ผ๊ณ ํ ๊ฒ์ด์ฃ .
์ ๋ฆฌํ์๋ฉด, ๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์ && ๋ ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ๋ชจ๋ true์ฌ์ผ true๋ฅผ ๋ฐํํด์. ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์(์ฐ์ฐ์ ๋นํ๋ ๊ฒ)๊ฐ true์ฌ๋, ํํ์ ์ ์ฒด๋ฅผ ํ๊ฐํ ์ ์์ผ๋ ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๊น์ง ํ๊ฐํด ๋ณด์์ผ ํํ์์ ํ๊ฐํ ์ ์์ด์.
์ฆ, ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์ && ํํ์์ ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด์ฃ .
์ด๋ ๊ฒ, ๋จ์ถ ํ๊ฐ๋ ํ์ํ ๋งํผ๋ง ์กฐ๊ฑด์ ๊ฒ์ฌํ๊ณ ๋นจ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ๊ฒ์ด๋๋๋ค.
|| : ๋๋ถ์ ์ฝฉ๋๋ฌผ ์ฌ๋ถ๋ฆ ๐
์๋ง๊ฐ ์ฌ๋ฌ๋ถ์๊ฒ ๋๋ถ์ ์ฝฉ๋๋ฌผ ์ฌ๋ถ๋ฆ์ ์ํค์ จ๋๋ฐ, ์ด๋ ๋๋ถ์ ์ฝฉ๋๋ฌผ ๋ ๋ค ์ฌ๊ฑฐ๋, ์๋๋ฉด ๋ ์ค ํ๋๋ ๊ผญ ์ฌ ์์ผ ํ๋ค๊ณ ์์ฒญํ์ จ์ด์. ๋ ๋ค ์์ผ๋ฉด ์ฌ๋ฌ๋ถ์ ์ ๋ ์ ๊ตถ์ด์ผ ํด์..
์, ์ด๋ฒ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๊ฒ์ ๊ฐ๋๋ค.
์ค, ๋คํํ ๋๋ถ(true)์ ์ฝฉ๋๋ฌผ(true)์ด ๋ณด์ฌ์! ๊ทธ๋ฌ๋ ๋ ๋ค ์์ด์.
์ค๋์ ์ ๋ ์ ๋จน์ ์ ์์ด์! → true ๐
let ๋๋ถ = true;
let ์ฝฉ๋๋ฌผ = true;
๋๋ถ || ์ฝฉ๋๋ฌผ // true
๋ค์๋ , ๋ ๊ฐ๊ฒ์ ๊ฐ์ด์. ์ ๊ทธ๋ฐ๋ฐ ์ฝฉ๋๋ฌผ(false)์ ์๋ค์?
ํ์ง๋ง ์๋ง๊ฐ ๋ ์ค ํ๋๋ง ์ฌ์๋ ๋๋ค๊ณ ํ์ จ์ผ๋ ๋๋ถ(true)๋ง ๋ด์์.
์ค๋์ ์ ๋ ์ ๋จน์ ์ ์์ด์! → true ๐
let ๋๋ถ = true;
let ์ฝฉ๋๋ฌผ = false;
๋๋ถ || ์ฝฉ๋๋ฌผ // true
๋ค๋ค์๋ , ๋ ๊ฐ๊ฒ์ ๊ฐ์ด์. ์ ๊ทธ๋ฐ๋ฐ ์ด๋ฒ์ ๋๋ถ(false)๊ฐ ์๋ค์?
ํ์ง๋ง ์๋ง๊ฐ ๋ ์ค ํ๋๋ง ์ฌ์๋ ๋๋ค๊ณ ํ์ จ์ผ๋ ์ฝฉ๋๋ฌผ(true)๋ง ๋ด์์.
์ค๋์ ์ ๋ ์ ๋จน์ ์ ์์ด์! → true ๐
let ๋๋ถ = false;
let ์ฝฉ๋๋ฌผ = true;
๋๋ถ || ์ฝฉ๋๋ฌผ // true
๋ค๋ค๋ค์๋ , ๋ ๊ฐ๊ฒ์ ๊ฐ์ด์. ์ธ์์, ์ค๋์ ๋๋ถ(false)์ ์ฝฉ๋๋ฌผ(false) ๋ชจ๋ ๋ค ํ๋ ธ์ด์.
ํ์ง๋ง ์๋ง๊ฐ ๋ ์ค ํ๋๋ ๊ผญ ์ฌ ์์ผ ํ๋ค๊ณ ํ์ จ์ผ๋ ๋น ๋ฐ๊ตฌ๋๋ฅผ ๋ค๊ณ ์ง์ ๊ฐ์.
์ค๋์ ์ ๋ ์ ๋จน์ ์ ์์ด์..... → false ๐
let ๋๋ถ = false;
let ์ฝฉ๋๋ฌผ = false;
๋๋ถ || ์ฝฉ๋๋ฌผ // false
์ ๋ฆฌํ์๋ฉด, ๋ ผ๋ฆฌํฉ ์ฐ์ฐ์ || ๋ ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ๋ ์ค ํ๋๋ง true์ฌ๋ true๋ฅผ ๋ฐํํด์. ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์(์ฐ์ฐ์ ๋นํ๋ ๊ฒ)๊ฐ true๋ฉด, ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๊น์ง ๊ตณ์ด ํ๊ฐํด ๋ณด์ง ์์๋ ํํ์์ ํ๊ฐํด ๋ณผ ์ ์์ด์.
์ฆ, ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ๋ ผ๋ฆฌํฉ ์ฐ์ฐ์ || ํํ์์ ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด์ฃ .
์ด? ๐ฎ
๊ทธ๋ฐ๋ฐ ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์ ๋๋ถ๊ฐ false๊ณ , ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์ ์ฝฉ๋๋ฌผ์ด true์ธ๋ฐ ์ false๊ฐ ์๋ true๊ฐ ๋์ค๋ ๊ฑธ๊น์?
let ๋๋ถ = false;
let ์ฝฉ๋๋ฌผ = true;
๋๋ถ || ์ฝฉ๋๋ฌผ // true
์์ ๋ฐ์ค ์น ๋ถ๋ถ์ฒ๋ผ ๋ ผ๋ฆฌํฉ ์ฐ์ฐ์ || ์์๋ '๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ' ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ํํ์์ ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ด์์. ๋จ์ง ๊ทธ๋ฅ ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ์๋๋ผ '๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ' ํผ์ฐ์ฐ์์. ์ด ๋ง์ ํ์ด์ ์ด์ผ๊ธฐํด๋ณผ๊ฒ์.
์๊น ์๋ง๊ฐ ๋๋ถ์ ์ฝฉ๋๋ฌผ '๋ ์ค ํ๋'๋ง ์ฌ ์ค๋ผ๊ณ ํ์ จ์ฃ ? ๊ทธ๋ ๋ค๋ฉด ๋ ์ค 'ํ๋๋ผ๋ ์๋ค'๋ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์์ด์ผ ํ์์์. ๊ทธ๋ฐ๋ฐ ์ฒซ ๋ฒ์งธ ๋๋ถ๊ฐ ์๋ค๊ณ (false) ๋ฐ๋ก ์ค๋ ์ ๋ ์ ๋จน์ง ๋ชปํ๋ค๋(false) ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ๋ผ ์ ์๋ ๊ฒ์ผ๊น์?
์๋์ฃ . ๐ ๐ปโ๏ธ
๋๋ถ๋ ์์ง๋ง(false), ์ฝฉ๋๋ฌผ์ด๋ผ๋ ์์ผ๋ฉด(true) ์ค๋ ์ ๋ ์ ๋จน์ ์ ์๋ ๊ฑฐ์ฃ (true)
๋ง์ง๋ง์ผ๋ก, ์๋์ ์์๋ฅผ ๋ณด๋ฉด ๋ ์ดํด๊ฐ ์ ๋ ๊ฑฐ์์.
let ๋๋ถ = false;
let ์ฝฉ๋๋ฌผ = true;
false || false || ์ฝฉ๋๋ฌผ || false // true
๊ณ์ ์๋ ๋๋ถ๋ง ๋ณด๋ค๊ฐ (false, false..) ์ฝฉ๋๋ฌผ์ ์ฐพ์์ด์(true) ๊ทธ๋ ๋ค๊ณ ์ค๋ ์ ๋ ์ ๋ชป ๋จน๋ ๊ฑด ์๋์ฃ ?
๋ค, true์ ๋๋ค. ๐๐ปโ๏ธ
๊ณ์ ๋๋ถ๋ฅผ ์ฐพ์ง ๋ชปํด๋(false) ์ด์จ๋ ์ฝฉ๋๋ฌผ์ ์ฐพ์์ผ๋(true), ์ค๋ ์ ๋ ์ ๋จน์ ์ ์์ด์(true) ๐
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ์ ๋ฆฌํด ๋ณผ๊น์?
๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์(&&)์, ๋ ผ๋ฆฌํฉ ์ฐ์ฐ์(||)๋ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ํผ์ฐ์ฐ์๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ง ์๊ณ ๊ทธ๋๋ก ๋ฐํํ๋๋ฐ, ์ด๊ฒ์ ๋จ์ถ ํ๊ฐ๋ผ๊ณ ํด์.
๋จ์ถ ํ๊ฐ๋ ํํ์์ ํ๊ฐํ๋ ๋์ค์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ํ์ ๋ ๊ฒฝ์ฐ, ๋๋จธ์ง ํ๊ฐ ๊ณผ์ ์ ์๋ตํ๋ ๊ฒ์ ๋งํ๋ต๋๋ค. ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ด์ฒ๋ผ ๋จ์ถ ํ๊ฐ๋ฅผ ํตํด ๋ ผ๋ฆฌ ์ฐ์ฐ์ ์ํํ๊ณ ๋ ํด์.
์ค๋ ์์ ์ด๋ ๋์? ์ฌ๋ฐ์๋ค๊ณ ์?
๊ทธ๋ผ ๋ค์ ์๊ฐ์๋ ๋ ์ฌ๋ฐ๊ณ ์ฌ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ ์ ๊ฐ์ง๊ณ ์ฌ๊ฒ์.
๋ชจ๋ ์๋ ~ ๐
๐ References
- ์ฑ <๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive>
'๐ Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JavaScript ๋ด์ฅ ํจ์์ ์ธ๊ณ - apply (2) | 2024.01.15 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ symbol์ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์๊น? (0) | 2023.09.19 |
์ ๊ณ ์ฐจํจ์์์๋ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ์ ๊ฑฐํ ๊น? (0) | 2023.09.17 |
์์๋๋ฉด ์ฌ๋ฏธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ญ์ฌ (1) | 2023.09.10 |
์ ES6๋ถํฐ ํด๋์ค ๊ฐ๋ ์ด ์ถ๊ฐ๋๊ฑธ๊น? (0) | 2023.09.07 |
๋๊ธ