Variable
๋ณ์์ ๊ฐ์ฒด
[TOC]
๋ณ์
๋ณ์ ์ ์ธ
๋ณ์: ๊ฐ์ ๋ด๊ธฐ ์ํด ์ด๋ฆ์ ๋ถ์ธ ์์
var(์ ์ธ์) number(๋ณ์ ์ด๋ฆ);
๋ณ์๋ ์ต๋ํ ๋ณํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
โ๋ณ์๋ฅผ ์ ์ธํ์ง ์๊ณ ๊ฐ์ ๋์ ํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๋์ผ๋ก ๋ณ์๋ฅผ ์ ์ญ ๋ณ์๋ก ์ ์ธ
์ ์ญ๋ณ์(global variable)์ ์ง์ญ๋ณ์(local variable)
์ ์ญ๋ณ์: ์ ์ญ ๊ฐ์ฒด(
window
)์์ ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์โ์ ์ญ ๋ณ์๋ ๋์ ์ ๊ทผ์ฑ ๋๋ฌธ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค
์ง์ญ๋ณ์: ํจ์ ๋๋ ๋ธ๋ก ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์
var | let | const | |
---|---|---|---|
ํธ์ด์คํ | O | X | X |
์ฌ์ ์ธ | O | X | X |
์ฌํ ๋น | O | O | X |
var ๋ณ์
ํ์ฌ ์คํ ์ปจํ ์คํธ์ ํด๋ก์ ๋ฒ์์ ์ ํ์ ์ธ ๊ฐ ์ด๊ธฐํ๋ฅผ ํ๋ ๋ณ์
โ
var
์ ์ด๋ ์์น์์ ์ ์ธ๋๋ ์ฝ๋์ ์ต์๋จ์ผ๋ก ๋์ด ์ฌ๋ ค์ ธ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ค.(ํธ์ด์คํ )๋ฐ๋ผ์ ๋ณ์์ ๋ฒ์์ ์ต์๋จ์์ ์ ์ธํ๋ ๊ฒ์ด ์ฝ๊ธฐ ์ฝ๋ค.
๋ณ์์ ์ ์ธ๋ง ํธ์ด์คํ ๋ ๋ฟ, ๋ณ์ ์ด๊ธฐํ๋ ํธ์ด์คํ ๋์ง ์๋๋ค. (์ด๊ธฐํ ์ ๊น์ง
undefined
๋ฅผ ๋ฐํ)NodeJS, CommonJS ๋ชจ๋์์ ์ต์์ ๋ณ์๋ฅผ ์ ์ธํด๋ ๋ฒ์๋ ๋ชจ๋๋ก ํ์ ๋์ด ์ ์ญ ๊ฐ์ฒด์ ์์ฑ์ผ๋ก ์ถ๊ฐ๋์ง ์๋๋ค.
โ์ฌ์ ์ธ์ ํ๋๋ผ๋ ์ค๋ฅ๋ฅผ ๋ฐ์ ์ํค์ง ์๋๋ค.
์ ์ญ ์ปจํ ์คํธ์์ ์ ์ธ๋๋ฉด ์ ์ญ ๊ฐ์ฒด(window)์ ์์ฑ์ผ๋ก ์ถ๊ฐ๋๋ค.
let ๋ณ์
ES2015๋ถํฐ ๋์ ๋ ์ฌ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ ๋ธ๋ก ์ค์ฝํ๋ฅผ ๊ฐ๋ ์ ํ์ ์ธ ๊ฐ ์ด๊ธฐํ๋ฅผ ํ๋ ๋ณ์
์ ์ธ๋ถ์ ๋๋ฌํ๊ธฐ ์ ๊น์ง ์ก์ธ์ค ๋ถ๊ฐ -> TDZ
โ
let
๊ณผconst
๋ var์ ๋ฌ๋ฆฌ ์ ์ญ ๋ณ์๊ฐ ๋๋๋ผ๋ ์ ์ญ ๊ฐ์ฒด(window)์ ์์ฑ์ด ๋์ง ์๋๋ค.
const ๋ณ์
์ฌํ ๋น, ์ฌ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ ์์(constant) ๊ฐ์ ๊ฐ๋ ๋ณ์
๋ฐฐ์ด์ผ ๋๋ ํญ๋ชฉ์ ๋ํ ์ ๋ฐ์ดํธ ๋ฐ ์ ๊ฑฐ ๊ฐ๋ฅ
์ฌํ ๋น ๋์ง ์์ ๊ฒ์์ ์๋ ค์ค์ผ๋ก์จ ์ฝ๋ ์ฝ๊ธฐ๊ฐ ์ฌ์์ง๋ค.
์ ์ธํ ๋ ๊ฐ์ ์ง์ ํด์ผ ํ๋ค.
const
๋ฅผlet
๋ณด๋ค ์์์ ์ ์ธํ์.
๋ณ์ ๋์ด์ฌ๋ฆผ(hoisting)
๋ณ์ ์ ์ธ๋ถ๋ฅผ ํ๋ก๊ทธ๋จ ์ฒซ ๋จธ๋ฆฌ๋ก ๋์ด์ฌ๋ฆผ
๊ฐ์ ์ด๋ฆ์ผ๋ก ๋์ด ์ฌ๋ ค์ง๋ ๋ณ์๋ ๋ชจ๋ ๋์ด์ฌ๋ฆฐ ํ ํ๋์ ์์ญ์ ํ ๋น๋๋ค.
โ
var
๋ณ์๋ ํธ์ด์คํ ์underfined
๋ก ๋ณ์๋ฅผ ์ด๊ธฐํโ
let
๊ณผconst
๋ ํธ์ด์คํ ๋๋ ์ ์ธ๋ถ ์ ์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์์ ์ธ์ ํด์ผ๋ง ํธ์ด์คํ ์ด ์๋
โ์ ์ธํ์ง ์์ผ๋ฉด ํธ์ด์คํ ์ด ๋์ง ์์
let ๊ณผ const ํธ์ด์คํ
(Temporal dead zone;TDZ)
์ผ๋ฐ์ ์ผ๋ก let๊ณผ const๋ ํธ์ด์คํ ๋์ง ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ค.
let
๊ณผconst
๋ ์ ์ธ ์ ๋ธ๋ก์ ์์๋ถ๋ก ํธ์ด์คํ ๋์ง๋ง์ ์ธ ๋ฐ ์ด๊ธฐํ ์ฝ๋๊ฐ ์คํ๋๊ธฐ ์ ๊น์ง TDZ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
TDZ์ ์๋ ๋์์ ๋ณ์์ **์ก์ธ์ค๊ฐ ๋ถ๊ฐ๋ฅ(ReferenceError)**ํ๊ณ ์ด๊ธฐํ๋์ง ์๋๋ค.
Temporal
์ ์ฝ๋๊ฐ ์คํ๋๋ ์๊ฐ์ ์์๋ฅผ ์๋ฏธํ๋ค.
TDZ์ ๋ํ ์์
TDZ๋ก ์ธํ ์ค๋ฅ ๋ฐ์ ์์
๋ณ์ ๋ช
๋ช
๊ท์น
์ฌ์ฉ ๊ฐ๋ฅ ๋ฌธ์: ์ํ๋ฒณ(a
z, AZ), ์ซ์(0~9), ๋ฐ์ค(_), ๋ฌ๋ฌ ๊ธฐํธ($)โ์ฒซ ๊ธ์๋ก ์ซ์๋ ์ฌ์ฉ ๋ถ๊ฐ
โ์์ฝ์ด๋ฅผ ์๋ณ์๋ก ์ฌ์ฉ ๋ถ๊ฐ
์ง์ญ ๋ณ์ ๋ช ์ '_'๋ก ์์ํ๋ค.
์์ฃผ ์ฐ์ด๋ ์์๋ ๋๋ฌธ์๋ง์ผ๋ก ์์ฑํ์ฌ ๋์ ๋๊ธฐ ์ฝ๊ฒ ํ ์ ์๋ค.
์บ๋ฉ ํ๊ธฐ๋ฒ(๋ก์ด ์บ๋ฉ ํ๊ธฐ๋ฒ)
๋ ๋ฒ์งธ ์ดํ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐ -> ํจ์ ๋ฐ ๋ณ์ ํ๊ธฐ
ex) newName, createLifeGame
ํ์ค์นผ ํ๊ธฐ๋ฒ(์ดํผ ์บ๋ฉ ํ๊ธฐ๋ฒ)
๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐ -> ์์ฑ์, ํด๋์ค ํ๊ธฐ
ex) NewName, CreateLiftGame
๋ฐ์ค ํ๊ธฐ๋ฒ(์ค๋ค์ดํฌ ํ๊ธฐ๋ฒ)
๋ชจ๋ ๋จ์ด๋ฅผ ์๋ฌธ์๋ก ํ๊ธฐํ๊ณ ๋จ์ด ์ฌ์ด๋ฅผ ๋ฐ์ค(_)๋ก ๊ตฌ๋ถ -> ์์ ํ๊ธฐ
ex) new_name, create_life_game
๋ฐ์ดํฐ ํ์
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ ํ์ ์ธ์ด
๋ฐ์ดํฐ ํ์
๋ถ๋ฅ
์์ ํ์
์ซ์(Number)
๋ฌธ์์ด(String)
๋ ผ๋ฆฌ๊ฐ(Boolean)
ํน์ํ ๊ฐ(Undefined, Null)
์ฌ๋ฒ(Symbol)
์์ ์ ๋ฐ๋(BigInt)
๊ฐ์ฒด ํ์ (Object)
์ซ์(Number)
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ซ์๋ฅผ ๋ชจ๋ 64๋นํธ ๋ถ๋์์์ ์ผ๋ก ํํ
๋ฐฐ์ด ์ธ๋ฑ์ค์ ๋นํธ ์ฐ์ฐ์ 32๋นํธ ์ ์ ์ฒ๋ฆฌ
๋ฆฌํฐ๋ด(literal): ํ๋ก๊ทธ๋จ์ ์ง์ ์์ฑํ ์ ์๋ ์์ ๊ฐ
์ซ์ ๋ฆฌํฐ๋ด
๋ถ๋ฅ | ํ๊ธฐ๋ฒ | ์์ | ์ค๋ช | ๋น๊ณ |
---|---|---|---|---|
์ ์ ๋ฆฌํฐ๋ด | 10์ง์ | 123 | ์ ์ ๊ทธ๋๋ก ํํ | |
16์ง์ | 0x2a | ์ซ์ ์์ 0x | ||
8์ง์ | 0o73 | ์ซ์ ์์ 0o | ES6 | |
2์ง์ | 0b101 | ์ซ์ ์์ 0b | ES6 | |
๋ถ๋์์์ ๋ฆฌํฐ๋ด | ์ ์.์์ | 3.14 | ์์ ๊ทธ๋๋ก ํํ | |
์์ | 0.123 | ์ ์๋ถ 0์ผ๋ 0์ ์๋ต๊ฐ๋ฅ | ||
๊ฐ์๋ถe์ง์๋ถ | 6.02e23 | 6.02*10^23 | ||
๊ฐ์๋ถE์ง์๋ถ | 1.16199E-35 | 1.1616199*10^-35 |
ํน์ํ ๊ฐ
๋ถ๋ฅ | ํ๊ธฐ๋ฒ | ์ค๋ช | ๋น๊ณ |
---|---|---|---|
์ ์ญ ๋ณ์ | Infinity | ํ๋ฌ์ค ๋ฌดํ๋ | |
์ ์ญ ๋ณ์ | NaN | ๋ถ์ ๊ฐ(์์น ๊ณ์ฐ ์ค๋ฅ) | |
Number์ ํ๋กํผํฐ | Number.PISITIVE_INFINITY | ํ๋ฌ์ค ๋ฌดํ๋ | |
Number์ ํ๋กํผํฐ | Number.NEGATIVE_INFINITY | ๋ง์ด๋์ค ๋ฌดํ๋ | |
Number์ ํ๋กํผํฐ | Number.MAX_VALUE | ํํ ๊ฐ๋ฅํ ์ต๋๊ฐ | |
Number์ ํ๋กํผํฐ | Number.MIN_VALUE | ํํ ๊ฐ๋ฅํ ์ต์๊ฐ | |
Number์ ํ๋กํผํฐ | Number.NaN | ๋ถ์ ๊ฐ | |
Number์ ํ๋กํผํฐ | Number.EPSILON | 2.22044604925031e-16 | ES6 |
Number์ ํ๋กํผํฐ | Number.MIN_SAFE_INTEGER | -9007199254740990 | ES6 |
Number์ ํ๋กํผํฐ | Number.MAX_SAFE_INTEGER | 9007199254740990 | ES6 |
๋ฌธ์์ด(String)
16๋นํธ ์ ๋์ฝ๋ ๋ฌธ์(UTF-16)
๋ฌธ์์ด์ '' ๋๋ ""๋ฅผ ๊ฐ์ธ์ ์ฌ์ฉ.
๋ฌธ์์ด ํ ํ๋ฆฟ์ผ๋ก ๋ฐฑํฑ(`)๋ ์ฌ์ฉ ๊ฐ๋ฅ
HTML ์์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ ๋๋ ๋ฌธ์์ด์ฒ๋ผ ๊ฐ์ธ์ ์์ฑ
๋ฌธ์์ด์์์ ํน์ํ ๋ฌธ์๋ค์ ์ด์ค์ผ์ดํ ์ํ์ค๋ก ํํํด์ผ ํ๋ค.
์ด์ค์ผ์ดํ ์ํ์ค๋ ์ญ์ฌ๋์() ๋ค์ ํน์ ๋ฌธ์๋ฅผ ๋ฃ์ด ํํ
์ด์ค์ผ์ดํ ์คํ์ค | ์๋ฏธ | ๋น๊ณ |
---|---|---|
\0 | ๋(null)๋ฌธ์ | |
\b | ๋ฐฑ์คํ์ด์ค ๋ฌธ์ | |
์ํ ํญ ๋ฌธ์ | ||
๊ฐํ ๋ฌธ์ | ||
\v | ์์ง ํญ ๋ฌธ์ | |
\f | ๋ค์ ํ์ด์ง ๋ฌธ์ | |
์บ๋ฆฌ์ง ๋ฆฌํด ๋ฌธ์(CR) | ||
\' | ์์๋ฐ์ดํ ๋ฌธ์ | |
\" | ํฐ๋ฐ์ดํ ๋ฌธ์ | |
\ | ์ญ์ฌ๋์ ๋ฌธ์ | |
\xXX | ๋ ์๋ฆฟ์ 16์ง์ XX๋ก ์ง์ ๋ Latin-1 ๋ฌธ์ | |
\uXXXX | ๋ค ์๋ฆฟ์ 16์ง์ XXXX๋ก ์ง์ ๋ ์ ๋์ฝ๋ ๋ฌธ์ | |
\u{XXXXX} | 16์ง์ ์ฝ๋ ํฌ์ธํธ XXXXXX๋ก ์ง์ ๋ ์ ๋์ฝ๋ ๋ฌธ์ | ES6 |
๋
ผ๋ฆฌ๊ฐ(Boolean)
๋ ผ๋ฆฌ ๋ฐ์ดํฐ ์ ํ์ผ๋ก true ๋๋ false ๋ ๊ฐ์ง ์ข ๋ฅ๋ฅผ ๊ฐ์ง
false์ธ ๊ฒฝ์ฐ
0 , -0
null
false
NaN
undefined
""
ํน์ํ ๊ฐ(Undefined, Null)
undefined: ์ ์๋์ง ์์ ์ํ
๊ฐ์ ์์ง ํ ๋นํ์ง ์์ ๋ณ์์ ๊ฐ
์๋ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ฝ์ผ๋ ค๊ณ ํ์ ๋์ ๊ฐ
์๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ฝ์ผ๋ ค๊ณ ํ์ ๋์ ๊ฐ
์๋ฌด๊ฒ๋ ๋ฐํํ์ง ์๋ ํจ์๊ฐ ๋ฐํํ๋ ๊ฐ
ํจ์๋ฅผ ํธ์ถํ์ ๋ ์ ๋ฌ๋ฐ์ง ๋ชปํ ์ธ์์ ๊ฐ
์ซ์๋ก์
NaN
null: ์๋ฌด๊ฒ๋ ์์
๋ณดํต ํ๋ก๊ทธ๋จ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๊ฒ์ํ์ง๋ง ์ฐพ์ง ๋ชปํ์ ๋ ๋ฐํ๋๋ ๊ฐ
์ซ์๋ก์
0
null ๊ฐ ํ์ธ:
nullVar === null
์ ํตํด ํ์ธ (typeof ์ฌ์ฉํ๋ฉด ์๋จ)
ECMAScript 6๋ถํฐ ์ถ๊ฐ๋ ๋ฐ์ดํฐ ํ์
1.์ฌ๋ฒ(symbol)
์๊ธฐ ์์ ์ ์ ์ธํ ๊ทธ ์ด๋ค ๊ฐ๊ณผ๋ ์ ์ผํ ๊ฐ
ํธ์ถํ ๋๋ง๋ค ์๋ก์ด ๊ฐ์ ๋ฐํ
์ฌ๋ฒ๊ณผ ๋ฌธ์์ด ์ฐ๊ฒฐ
์ฌ๋ฒ์ for๋ก ์ฐ๊ฒฐ๋ ๋ฌธ์์ด์ keyFor์ ํตํด ๊ตฌํ ์ ์๋ค
2.ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด(templete literals )
``๋ก ๋ฌถ์ ๋ฌธ์์ด
\n์ด ์๋ ์ผ๋ฐ์ ์ธ ์ค ๋ฐ๊ฟ์ ํตํด ์ค๋ฐ๊ฟ ๊ฐ๋ฅ
๋ณด๊ฐ ํํ์: ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ์์ ํ๋ ์ด์ค ํ๋๋ฅผ ${...}์ ํตํด ๋ฃ์ ์ ์๋ค
ํ ๋ณํ
์์์ ํ ๋ณํ
์์ง์ ์ํด ์๋ฌต์ ์ผ๋ก ํ์ ์ด ์๋ ๋ณํ
๋ค๋ฅธ ํ์ (+) '๋ฌธ์์ด' -> ๋ฌธ์์ด ํ์
1+'1' -> '11'
์ซ์ (-,*,/) ๋ค๋ฅธ ํ์ -> ์ซ์ ํ์
1 - '1' -> 0
์กฐ๊ฑด์์์ ํํ์ -> ๋ถ๋ฆฌ์ธ ํ์
1 ? 'true' : 'false' -> true
๋ช
์์ ํ ๋ณํ
๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ํ์ ์ ๋ณํ
๋ฌธ์์ด -> String() / '123'.toString()
์ซ์ -> Number() / parseInt('123') / parseFloat('3.14')
๋ถ์ธ -> Boolean() / !!'false'
๋ฐ์ดํฐ ํ์
ํ์ธ
Type | Result |
---|---|
| |
| |
| |
| |
| |
| |
Symbol (ECMAScript 2015์์ ์ถ๊ฐ) |
|
ํธ์คํธ ๊ฐ์ฒด (JS ํ๊ฒฝ์์ ์ ๊ณต) | ๊ตฌํ์ฒด๋ง๋ค ๋ค๋ฆ |
Function ๊ฐ์ฒด (ECMA-262 ํํ์ผ๋ก๋ [[Call]]์ ๊ตฌํํ๋ ๊ฐ์ฒด) |
|
๋ค๋ฅธ ๋ชจ๋ ๊ฐ์ฒด |
|
์๋ฐ์คํฌ๋ฆฝํธ ์ฐ์ฐ์
์ฐ์ฐ์ ์ฐ์ ์์
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Operator_precedence
์ฌ์น์ฐ์ฐ ์ฐ์ฐ์
+ ์ฐ์ฐ์
์ซ์ ํ์ ์ผ๋ก์จ ๋ง์ ์ ํ ์ ์๋ค.
๋ฌธ์์ด ํ์ ์ผ๋ก์จ ๋ฌธ์์ด ํฉ์น๊ธฐ๋ฅผ ํ ์ ์๋ค.
์ซ์ + ๋ฌธ์์ด์ ๋ฌธ์์ด ํ์ ๋๋ค
์ซ์ ํ์ ๊ณผ์ ๋ง์ ์์ ๋ ผ๋ฆฌ ํ์ true๋ 1, false๋ 0์ผ๋ก ๊ฐ์ฃผ๋๋ค.
๋ฌธ์์ด ํ์ ๊ณผ์ ํฉ์น๊ธฐ์์ ๋ ผ๋ฆฌ ํ์ true๋ "true", false๋ "false"๋ก ๊ฐ์ฃผ๋๋ค.
- ์ฐ์ฐ์
๋ ์ฐ์ฐ์์ ์ฐจ์ด๋ฅผ ๊ตฌํ ์ ์๋ค.
๋น ๋ฌธ์์ด์ด ์๋ ๋ฌธ์์ด๊ณผ์ ์ฐ์ฐ์ NaN์ ๋ฐํํ๋ค
* ์ฐ์ฐ์
๋ ์ฐ์ฐ์๋ฅผ ๊ณฑํ๋ค.
/ ์ฐ์ฐ์
๋ ์ฐ์ฐ์๋ฅผ ๋๋๋ค.
0์ผ๋ก ๋๋๋ฉด Infinity์ ๋ฐํ
์ซ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด๋ก ๋๋๋ฉด ์ซ์๋ก ์ทจ๊ธํ์ฌ ์ฐ์ฐ
๊ธ์๊ฐ ์๋ ๋ฌธ์์ด์ NaN์ ๋ฐํ
% ์ฐ์ฐ์
๋๋ด์ ๋์ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ค.
NaN, Infinity์ ๋ํด์๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ ์ ์์ด NaN์ ๋ฐํ
** ์ฐ์ฐ์
๊ฑฐ๋ญ์ ๊ณฑ์ ๊ตฌํ๋ค.
๋น๊ต ์ฐ์ฐ์
Boolean ๋น๊ต
๋น๊ต ์ฐ์ฐ์๋ค์ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก
true
,false
๊ฐ์ ๋ฐํํ๋ค.
๋ฌธ์์ด ๋น๊ต
๋ฌธ์์ด์ ์ฌ์ ํธ์ง์์ผ๋ก ๋น๊ต๋๋ค.
์ฆ ์ฌ์ ์์ชฝ์ ๋์ค๋ ๋ฌธ์์ด์ด ๊ฐ์ด ๋ฎ๋ค. a < b < c ...
๋ฌธ์์ด์ ์์์๋ถํฐ ํ ๊ธ์์ฉ ์ฐจ๋ก๋๋ก ๋น๊ตํ๋ค.
๋ฌธ์์ด ๊ธธ์ด๊ฐ ๋ค๋ฅด๊ณ ์์ ๋ฌธ์์ด์ด ๊ฐ์ ๊ฒฝ์ฐ, ๋ ๊ธด ๋ฌธ์์ด์ด ๋ ๋์ ๊ฐ์ ๊ฐ์ง๋ค.
๊ฐ ์์(ํฌ๊ธฐ): ์ซ์ < ์ํ๋ฒณ ๋๋ฌธ์ < ์ํ๋ฒณ ์๋ฌธ์ < ํ๊ธ
== ๊ณผ === ์ฐ์ฐ์
==
(๋๋ฑ ์ฐ์ฐ์): ํผ์ฐ์ฐ์์ ํ์ ์ด ๋ค๋ฅผ ๊ฒฝ์ฐ ํ์ ๋ณํ ํ ๋น๊ต===
(์๊ฒฉํ ๋๋ฑ ์ฐ์ฐ์) : ํ์ ๋ณํ์์ด ๋น๊ต
!! ์ฐ์ฐ์
์ซ์๋ 0์ผ ๊ฒฝ์ฐ false
๋ฌธ์์ด์ ๋น์ด์์ ๊ฒฝ์ฐ false
์์ธ๊ฐ false
๊ฐ์ฒด๋ ๋น์ด ์์ด๋ true
Number.isNaN ์ฐ์ฐ์
์๊ฒฉํ isNaN ์ฐ์ฐ์
๋
ผ๋ฆฌ ์ฐ์ฐ์
|| ์ฐ์ฐ์
ํผ์ฐ์ฐ์ ๋ค์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐํ๋ฉฐ, true๋ฅผ ๋ง๋๋ฉด true๋ฅผ ๋ฐํ, ์๋ค๋ฉด false ๋ฐํ
ํผ์ฐ์ฐ์๊ฐ
boolean
true ๊ฐ์ด๋ฉดboolean
true์ ๋ฐํํ์ง๋ง, ๋ค๋ฅธ ๊ฐ์ด๋ฉด ๊ทธ ๊ฐ์ ๋ฐํํ๋ค.๋ชจ๋ ๊ฐ์ด
falsy
์ด๋ฉด ๋ง์ง๋ง ํผ์ฐ์ฐ์ ๊ฐ์ ๋ฐํ&& ์ฐ์ฐ์๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ๋ค
&& ์ฐ์ฐ์
ํผ์ฐ์ฐ์๋ค์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐํ๋ฉฐ, false๋ฅผ ๋ง๋๋ฉด false๋ฅผ ๋ฐํ, ์๋ค๋ฉด true ๋ฐํ
ํผ์ฐ์ฐ์๊ฐ
boolean
false ๊ฐ์ด๋ฉดboolean
false์ ๋ฐํํ์ง๋ง, ๋ค๋ฅธ ๊ฐ์ด๋ฉด ๊ทธ ๊ฐ์ ๋ฐํํ๋ค.๋ชจ๋ ๊ฐ์ด
truthy
์ด๋ฉด ๋ง์ง๋ง ํผ์ฐ์ฐ์๋ฅผ ๋ฐํfalse์ธ ๊ฐ์
false
,null
,NaN
,0
,''
,undefined
๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
! ์ฐ์ฐ์
๋ ผ๋ฆฌ์ ๋ถ์ ์ผ๋ก ์ฐธ์ ๊ฑฐ์ง์ผ๋ก, ๊ฑฐ์ง์ ์ฐธ์ผ๋ก ๋ฐ๊พผ๋ค.
๋ฐํ ๊ฐ์ด ํญ์
boolean
์ด๋ผ๊ณ ํ ์๋ ์๋ค.boolean
๊ฐ์ผ๋ก ๋ช ์์ ์ผ๋ก ๋ฐํํ๊ธฐ ์ํด!!
๋๋Boolean
์์ฑ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
!! ์ฐ์ฐ์
! ์ฐ์ฐ์
๋ฅผ ๋ ๋ฒ ์ฌ์ฉํ์ฌ boolean ๊ฐ์ผ๋ก ๋ณํํ ์ ์๋ค.๋ฐ๋์ ๋ฐ๋๋ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค
๋นํธ ์ฐ์ฐ์
& ์ฐ์ฐ์
๊ฐ ์๋ฆฌ์ ๋นํธ์ ๋ํด์ and ์ฐ์ฐ
| ์ฐ์ฐ์
๊ฐ ์๋ฆฌ์ ๋นํธ์ ๋ํด์ or ์ฐ์ฐ
^ ์ฐ์ฐ์
๊ฐ ์๋ฆฌ์ ๋นํธ์ ๋ํด์ xor ์ฐ์ฐ
๊ฐ์ผ๋ฉด 0, ๋ค๋ฅด๋ฉด 1
~ ์ฐ์ฐ์
๊ฐ ์๋ฆฌ์ ๋นํธ์ ๋นํธ๊ฐ ์์ผ๋ฉด 0 ์์ผ๋ฉด 1
<<, >> ์ฐ์ฐ์
๊ฐ ์๋ฆฌ์ ๋นํธ๋ฅผ ๊ฐ ๋ฐฉํฅ์ผ๋ก ์ํ๋ ๋งํผ ์ด๋
>>> ์ฐ์ฐ์
๋ถํธ์๋ ์ค๋ฅธ์ชฝ ์ํํธ ์ฐ์ฐ์
์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ๋ฆฌ๋ ๋นํธ๋ ํ๊ธฐ๋๊ณ , 0์ ์ผ์ชฝ ๋์ผ๋ก ์ด๋ํ๋ค
๊ทธ ์ธ ์ฐ์ฐ์
= ์ฐ์ฐ์
๋ณ์์ ๊ฐ์ ๋์ (ํ ๋น)
, ์ฐ์ฐ์
๊ฐ ํผ์ฐ์๋ฅผ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐํ๊ณ , ๋ง์ง๋ง ํผ์ฐ์ฐ์์ ๊ฐ์ ๋ฐํ
ํ ์ค์์ ์ฌ๋ฌ ์ฐ์ฐ์๋ฅผ ํ๊ฐํ ์ ์๋ค
๊ฐ๋ ์ฑ์ด ์ข์ง ์๋ค. ๋๋ฌธ์ ์ ์ฌ์ฉํ์ง ์๋๋ค..
typeof ์ฐ์ฐ์
ํ์ ์ ๋ฌธ์์ด๋ก ๋ฆฌํด
instanceof ์ฐ์ฐ์
object
์ ํํ ํ ํ์ ์ฒด์ธ์constructor.prototype
์ด ์กด์ฌํ๋์ง ํ๋ณ
? ์ฐ์ฐ์ (์ผํญ ์ฐ์ฐ์)
์๋ฐ์คํฌ๋ฆฝํธ์์ ์ธ ๊ฐ์ ํผ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ์ ์ผํ ์ฐ์ฐ์
else if ๋ฌธ๊ณผ ๋น์ทํ๊ฒ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
?. ์ฐ์ฐ์(์ ํ์ ์ฐ๊ฒฐ; optional chaining)
๊ฐ์ฒด์ ์์ฑ์ด๋ ํจ์๋ฅผ ํธ์ถ ํ ๋, ์ฐ์ฐ์์ ๊ฐ์ด
undefined
์ด๊ฑฐ๋null
์ผ ๊ฒฝ์ฐ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๊ณ ,
undefined
๋null
์ ๋ฐํํ๋ค.
Last updated