๐ธ09์ฅ. ํ์ ๋ณํ๊ณผ ๋จ์ถ ํ๊ฐ
โ
9.1 ํ์
๋ณํ์ด๋?
๋ช ์์ ํ์ ๋ณํ
/ํ์ ์บ์คํ
: ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ๊ฐ์ ํ์ ์ ๋ณํํ๋ ๊ฒ์๋ฌต์ ํ์ ๋ณํ
/ํ์ ๊ฐ์ ๋ณํ
: ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์๋ฌต์ ์ผ๋ก ํ์ ์ด ๋ณํ๋๋ ๊ฒ
โ
9.2 ์๋ฌต์ ํ์
๋ณํ
๋ฌธ์์ด(string), ์ซ์(number), ๋ถ๋ฆฌ์ธ(boolean)
๊ณผ ๊ฐ์์์ ํ์ (primitive type)
์ค ํ๋๋ก ํ์ ์ ์๋ ๋ณํ๋๋ค.
๋ฌธ์์ด ํ์
์ผ๋ก ๋ณํ
+
์ฐ์ฐ์๋ ํผ์ฐ์ฐ์ ์ค ํ๋ ์ด์์ด ๋ฌธ์์ด์ด๋ฉด, ๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ์๋ก ๋์ํ๋ค.1 + '2' // -> "12"
์ซ์ ํ์
์ผ๋ก ๋ณํ
์ฐ์ ์ฐ์ฐ์(-, *, /)
์ ํผ์ฐ์ฐ์๋ ์ฝ๋ ๋ฌธ๋งฅ์ ๋ชจ๋ ์ซ์ํ์ ์ด์ด์ผ ํ๋ค.๋ณํํ ์ ์๋ ๊ฒฝ์ฐ, NaN์ ๋ฐํํ๋ค.
+
๋จํญ ์ฐ์ฐ์๋ ํผ์ฐ์ฐ์๊ฐ ์ซ์ ํ์ ์ ๊ฐ์ด ์๋๋ฉด ์ซ์ ํ์ ์ ๊ฐ์ผ๋ก ์๋ฌต์ ํ์ ๋ณํ์ ์ํํ๋ค.
๋น ๋ฌธ์์ด(''), ๋น ๋ฐฐ์ด([]), null, false โ
0
true โ
1
(โ์ฃผ์โ)๊ฐ์ฒด, ๋น ๋ฐฐ์ด์ด ์๋ ๋ฐฐ์ด(= ๊ฐ์ด ์๋ ๋ฐฐ์ด), undefined โ
NaN
๋ถ๋ฆฌ์ธ ํ์
์ผ๋ก ๋ณํ
โ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด Falsy ๊ฐ์ผ๋ก ํ๋จํ๋ ๊ฐ
false
undefined
null
0, -0
NaN
''(๋น ๋ฌธ์์ด)
โ
9.3 ๋ช
์์ ํ์
๋ณํ
๋ฌธ์์ด ํ์
์ผ๋ก ๋ณํ
String ์์ฑ์ ํจ์๋ฅผ new ํค์๋ ์์ด ํธ์ถํ๋ ๋ฐฉ๋ฒ
Object.prototype.toString ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ โ ์๋ฌต์ ํ์ ๋ณํ
์ซ์ ํ์
์ผ๋ก ๋ณํ
Number ์์ฑ์ ํจ์๋ฅผ new ํค์๋ ์์ด ํธ์ถํ๋ ๋ฐฉ๋ฒ
parseInt, parseFloat ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ(๋ฌธ์์ด๋ง ์ซ์ ํ์ ์ผ๋ก ๋ณํ ๊ฐ๋ฅ)
์ฐ์ ์ฐ์ฐ์(+๋จํญ, *์ฐ์ )๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ โ ์๋ฌต์ ํ์ ๋ณํ
๋ถ๋ฆฌ์ธ ํ์
์ผ๋ก ๋ณํ
Boolean ์์ฑ์ ํจ์๋ฅผ new ํค์๋ ์์ด ํธ์ถํ๋ ๋ฐฉ๋ฒ
!(๋ถ์ ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ๋ ๋ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ)
โ
9.4 ๋จ์ถ ํ๊ฐ(short-circuit evaluation)
๋
ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋จ์ถ ํ๊ฐ
๋ ผ๋ฆฌ๊ณฑ(&&)
์ขํญ โ ์ฐํญ์ผ๋ก ํ๊ฐ๊ฐ ์งํ๋๊ณ
๋ ๊ฐ์ ํผ์ฐ์ฐ์๊ฐ ๋ชจ๋ true๋ก ํ๊ฐ๋ ๋, true๋ฅผ ๋ฐํํจ
๋ฐ๋ผ์ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์
๋ ๋ฒ์งธ ํผ์ฐ์ฐ์
๋ ผ๋ฆฌํฉ(||)
์ขํญ โ ์ฐํญ์ผ๋ก ํ๊ฐ๊ฐ ์งํ๋๊ณ
๋ ๊ฐ์ ํผ์ฐ์ฐ์.์ค ํ๋๋ง true๋ก ํ๊ฐ๋์ด๋, true๋ฅผ ๋ฐํํจ
๋ฐ๋ผ์ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์
์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์
๐ ์ฅ์ 1. if๋ฌธ์ ๋์ฒดํ ์ ์๋ค.
๐ ์ฅ์ 2. ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๋ณ์๊ฐ null ๋๋ undefined ๊ฐ ์๋์ง ํ์ธํ๊ณ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ ๋ ์ ์ฉํ๋ค.
๊ฐ์ฒด :
{key:value}
๋ก ๊ตฌ์ฑ๋ ํ๋กํผํฐ์ ์งํฉ๋ง์ฝ, ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๋ณ์์ ๊ฐ์ด ๊ฐ์ฒด๊ฐ ์๋๋ผ null/undefined์ธ ๊ฒฝ์ฐ, ๊ฐ์ฒด ์ฐธ์กฐ์ TypeError ๋ฐ์(ํ๋ก๊ทธ๋จ ๊ฐ์ ์ข ๋ฃ)
๐ ์ฅ์ 2. ํจ์ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ๋ ์ ์ฉํ๋ค.
ํจ์๋ฅผ ํธ์ถํ ๋ ์ธ์๋ฅผ ์ ๋ฌํ์ง ์์ผ๋ฉด ๋งค๊ฐ๋ณ์์๋ undefined๊ฐ ํ ๋น๋๋ค.
์ต์
๋ ์ฒด์ด๋ ์ฐ์ฐ์
์ขํญ์ ํผ์ฐ์ฐ์๊ฐ
null ๋๋ undefined
์ผ ๊ฒฝ์ฐ,undefined ๋ฐํ
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ,
์ฐํญ์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐ
๋ ผ๋ฆฌ๊ณฑ(&&) ์ฐ์ฐ์ vs ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์
๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์ : ์ขํญ ํผ์ฐ์ฐ์๊ฐ Falsy๊ฐ์ด๋ฉด, ์ขํญ ํผ์ฐ์ฐ์๋ฅผ ๊ทธ๋๋ก ๋ฐํํ๋ค. (๋จ, 0 ๋๋ ''์ ๊ฐ์ฒด๋ก ํ๊ฐ๋ ๋๋ ์๋ค.)
์ต์ ๋ ์ฒด์ด๋ : ์ขํญ ํผ์ฐ์ฐ์๊ฐ Falsy๊ฐ์ด๋ผ๋ null ๋๋ undefined ๋ง ์๋๋ฉด, ์ฐํญ์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ๋ค.
null ๋ณํฉ ์ฐ์ฐ์
์ขํญ์ ํผ์ฐ์ฐ์๊ฐ
null ๋๋ undefined
์ผ ๊ฒฝ์ฐ,์ฐํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํ
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ,
์ขํญ์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐ
๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ๋ ์ ์ฉํ๋ค.
๊ธฐ์กด :
๋ ผ๋ฆฌํฉ(||)์ ์ฌ์ฉํ ๋จ์ถ ํ๊ฐ
๋ฅผ ํตํด ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ค.์ขํญ์ ํผ์ฐ์ฐ์๊ฐ false๋ก ํ๊ฐ๋๋ Falsy๊ฐ์ด๋ฉด ์ฐํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๋ค.
๋จ, 0 ์ด๋ ''์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก์ ์ ํธํ๋ค๋ฉด ์๊ธฐ์น ์์ ๋์์ด ๋ฐ์
null ๋ณํฉ์ฐ์ฐ์
??
๋ ์ขํญ์ ํผ์ฐ์ฐ์๊ฐ Falsy๊ฐ์ด๋ผ๋ null๋๋ undefined๊ฐ ์๋๋ฉด ์ขํญ์ ํผ์ฐ์ฐ์๋ฅผ ๊ทธ๋๋ก ๋ฐํํ๋ค.
๐ฉ๐ป ๋ด ๊ฐ๋ฐ ๊ฒฝํ ํ๊ณ
ํ๋ก์ ํธ์์, ๋น ๋ฌธ์์ด("")๋ ํน์ ๊ฐ์ผ๋ก ์ ์งํ๊ณ ์ถ์์ง๋ง, || ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ๋น ๋ฌธ์์ด์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋์ฒด๋๋ ๋ฌธ์ ๊ฐ ์๊ธด ์ ์ด ์์๋ค.
์๋ฅผ ๋ค๋ฉด, ์๋ ์ฝ๋์์ data๊ฐ "" ์ด์ด๋ ๊ทธ๋๋ก res์ ํ ๋นํ๊ณ ์ถ์์ง๋ง, "default"๊ฐ ํ ๋น๋๋ ๋ฌธ์ ..
์ด๋ null ๋ณํฉ ์ฐ์ฐ์(??
)๋ฅผ ์ผ๋ค๋ฉด ๋ ๋์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๋ค์์๋ ??
์จ๋ด์ผ์ง!
Last updated