JABASCRIPT BASIC
๋ณ์
scope
var
์ฐ์ฐ์๋ ๋ณ์๋ฅผ ๋ก์ปฌ ์ค์ฝํ์์ ์ ์ํ๋ค๋ ์ ์ ๋ฐ๋์ ๊ธฐ์ตํด์ผํ๋ค. var
ํค์๋๋ฅผ ์จ์ ๋ณ์๋ฅผ ์ ์ํ๋ฉด ํด๋น ๋ณ์๋ ์์ ๊ฐ์ด ํจ์๊ฐ ์ข
๋ฃ๋๋ ์๊ฐ ํ๊ดด๋๋ค.
var
์ฐ์ฐ์๋ฅผ ์๋ตํ๋ ๊ฒฝ์ฐ์๋ ๋ณ์๋ฅผ ์ ์ญ์ผ๋ก ์ ์ํ ์ ์๋ค.
๋ฐ์ดํฐ ํ์ ECMAScript์๋ ๋ค์ฏ ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ํ์ ์ด ์๋ค. ์ด๋ฅผ primitive(์์) ๋ฐ์ดํฐ ํ์ ์ด๋ผ ๋ถ๋ฅด๊ธฐ๋ํ๋ค.
Undefined
Null
Boolean
number
string
๋ณต์กํ ๋ฐ์ดํฐ ํ์
object : ํจ์๋ฅผ ์ ์ธํ ๊ฐ์ฒด or null
function : ํจ์
์์ ๋ค์ฏ ๊ฐ์ง๊ฐ ์ด์ ํด๋น๋๋ค.
undefined
undefined
๋ var
๋ฅผ ์จ์ ๋ณ์๋ฅผ ์ ์ํ์ง๋ง ์ด๊ธฐํ ํ์ง์์ ๊ฒฝ์ฐ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ด๊ธฐํํ์ง ์์ ๋ณ์์๋ ํญ์ undefined
๊ฐ ํ ๋น๋๋ค.
undefined ๊ฐ์ด ํ ๋น๋ ๋ณ์์ ์ ์๋์ง ์์ ๋ณ์๋ฅผ ๊ตฌ๋ถํ ์ ์์ด์ผํ๋ค. ์์ง ์ ์ํ ์ ์๋ ๋ณ์์ ์คํํ ์ ์๋ ์กฐ์ ์ typeof
๋ฟ์ด๋ค.
Null
Null ํ์
์ญ์ ๊ฐ ํ๋๋ง์ ๊ฐ๋๋ค. null
์ ๋น ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ด๋ฏ๋ก typeof
๋ฅผ ํธ์ถํ๋ฉด object
๋ฅผ ๋ฐํํ๋ค.
๋ณ์ ์ ์์์ ํด๋น ๋ณ์๊ฐ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํ ๊ฒ์ด๋ผ๋ฉด null๋ก ์ด๊ธฐํํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
undefined
๋ null
์์ ํ์ํ์ผ๋ฏ๋ก ํ๋ฉด์ ์ผ๋ก ๋์ผํ ๊ฒ์ผ๋ก ์ ์ํ๋ค. null
๊ณผ undefined
๋ ์๋ก ๊ด๋ จ์์ง๋ง ๋ ๊ฐ์ ์์ฃผ ๋ค๋ฅด๊ฒ ์ฐ์ธ๋ค. ๋ณ์๊ฐ์ ๋ช
์์ ์ผ๋ก undefined
๋ฅผ ํ ๋นํด์๋ ์๋์ง๋ง, null
์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์ผํ์ง๋ง ํด๋น ๊ฐ์ฒด๋ฅผ ์ด์ฉํ ์ ์์ ๋ ํญ์ null
์ด ์์ผํ๋ค.
boolean
๋ฐ์ดํฐ ํ์ | true | false |
boolean | true | false |
string | ๋น์ด์์ง์์ ๋ฌธ์์ด ์ ๋ถ | ""(๋น ๋ฌธ์์ด) |
number | 0์ด ์๋ ๋ชจ๋ ์ซ์, ๋ฌดํ๋(Infinity) ํฌํจ | 0, NaN |
object | ๋ชจ๋ ๊ฐ์ฒด | null |
undefined | X(ํด๋น์์) | undefined |
number
๋ถ๋์์์ ์ซ์๋ ์์์ ์๋ 17์๋ฆฌ๊น์ง ์ ํํ์ง๋ง ์ฌ์น์ฐ์ฐ์ ์์ด์๋ ๋ถ์ ํํ๋ค.
0.1 + 0.2๊ฐ 0.3์ด ์๋ 0.30000000000000004๋ฅผ ๋ฐํํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋ฐ๋ผ์ ๋ถ๋์์์ ์ซ์๋ฅผ ๋น๊ตํ ๋๋ ์ด๋ฌํ ๋ฒ๊ทธ๋ฅผ ์ธ์งํ๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์จ์ผํ๋ค.
์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ MIN_VALUE, MAX_VALUE๋ฅผ ํตํด์ ์ ์ ์์ผ๋ฉฐ, ํด๋น ์ซ์๊ฐ ์ ํจํ ๋ฒ์์์ ์๋์ง๋ isFinite()
ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด๋๋ค.
NaN
NaN์ Not a Number์ผ๋ก ์๋ํ ์กฐ์์ด ์คํจํ์ ๋ ๋ฐํ๋๋ ๊ฐ์ด๋ค. NaN์ ์ด๋ ํ ๊ฐ๋ ์ผ์นํ์ง ์์ผ๋ฉฐ, NaN๋ผ๋ฆฌ๋ ์ผ์นํ์ง ์๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก, isNaN()
ํจ์๋ฅผ ๋ฐ๋ก ์ ๊ณตํด์ค๋ค.
์์ ๊ฐ๊ณผ ์ฐธ์กฐ ๊ฐ
์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์๋ ๋ณ์๊ฐ ๊ฐ์ ธ์ผํ ๋ฐ์ดํฐ ํ์ ์ ๋ํ ๊ท์น์ด ์์ผ๋ฏ๋ก ๋ณ์์ ๊ฐ๊ณผ ๋ฐ์ดํฐ ํ์ ์ ์คํ ์ค์ ๋ฐ๋ ์ ์๋ค.
์์ ๊ฐ์ ๋จ์ํ ๋ฐ์ดํฐ์ด๋ฉฐ, ์ฐธ์กฐ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํด๋น ๊ฐ์ด ์์ ๋ฐ์ดํฐ์ธ์ง ์ฐธ์กฐ ๋ฐ์ดํฐ์ธ์ง ํ๋จํ๋ค.
์์ํ์ ์ Undefined, Null, Boolean, ์ซ์, ๋ฌธ์์ด์ด๋ค. ์ฐธ์กฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ฒด๋ก, ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ง์ ์กฐ์ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ฉฐ, ๊ฐ์ฒด๋ฅผ ์กฐ์ํ ๋๋ ์ฌ์ค ํด๋น ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ์กฐ์ํ๋ ๊ฒ์ด๋ค.
๋์ ํ๋กํผํฐ
์ฐธ์กฐ ๊ฐ์ ๋ค๋ฃฐ๋๋ ์ธ์ ๋ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋ฐ๊พธ๊ณ ์ญ์ ํ ์ ์๋ค.
๊ฐ์ฒด๋ฅผ ์์ฑํ ํ ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๋ค. ์ด ์์ ๋ถํฐ ๊ฐ์ฒด๊ฐ ํ๊ดด๋๊ฑฐ๋ ํ๋กํผํฐ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ๊ฑฐํ๊ธฐ ์ ๊น์ง๋ ํด๋น ํ๋กํผํฐ์ ์ ๊ทผํ ์ ์๋ค.
์์๊ฐ์๋ ํ๋กํผํฐ๊ฐ ์์ผ๋ฉฐ, ์ถ๊ฐํ๋ คํด๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ ์์ง๋ง ๋ฐ๋ก ์ฌ๋ผ์ง๋ค. ๋์ ์ผ๋ก ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ ๊ฐ์ ์ฐธ์กฐ๊ฐ ๋ฟ์ด๋ค.
๊ฐ ๋ณต์ฌ
์์ ๊ฐ์ ๋ค๋ฅธ ๋ณ์๋ก ๋ณต์ฌํ ๋๋ ํ์ฌ ์ ์ฅ๋ ๊ฐ์ ์๋ก ์์ฑํ ๋ค์ ์๋ก์ด ๋ณ์์ ๋ณต์ฌํ๋ค.
์ฌ๊ธฐ์ ๋ณต์ฌ๋ ๊ฐ num2๋ num1์ ์ ์ฅ๋ ๊ฐ๊ณผ๋ ์์ ํ ๋ถ๋ฆฌ๋์ด์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฐธ์กฐ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๋ฉด ๊ทธ ๊ฐ์ด ๊ฐ์ฒด ์์ฒด๊ฐ ์๋๋ผ ํ์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ด๋ค.
๋ค์๊ณผ ๊ฐ์ด ๊ฐ์ฒด๋ฅผ ์กฐ์ํ๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด์๋ ์ํฅ์ด ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋งค๊ฐ๋ณ์
ECMAScript์ ํจ์ ๋งค๊ฐ๋ณ์๋ ๋ชจ๋ ๊ฐ์ผ๋ก ์ ๋ฌ๋๋ค. ํจ์ ์ธ๋ถ์ ์๋ ๊ฐ์ ํจ์ ๋ด๋ถ์ ๋งค๊ฐ๋ณ์์ ๋ณต์ฌ๋๋๋ฐ, ์ด๋ ๋ณ์์ ๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. ๋ณ์๋ ๊ฐ์ผ๋ก๋, ์ฐธ์กฐ๋ก๋ ์ ๊ทผ๊ฐ๋ฅํ์ง๋ง ๋งค๊ฐ๋ณ์๋ ์ค์ง ๊ฐ์ผ๋ก๋ง ์ ๋ฌ๋๋ค.
obj๋ ํจ์์ ๊ฐ ํํ๋ก ์ ๋ฌ๋์์ง๋ง, ์ฐธ์กฐ๋ฅผ ํตํด์ ๊ฐ์ฒด์ ์ ๊ทผํ๋ค. ํจ์ ๋ด๋ถ์์ obj์ name ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๋ฉด ํจ์ ์ธ๋ถ์์๋ ๋ฐ์๋๋๋ฐ obj๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ํ์ ์กด์ฌํ๋ ์ ์ญ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ฝ person2๊ฐ ์ฐธ์กฐ๋ก ์ ๋ฌ๋์๋ค๋ฉด, person2์ name ํ๋กํผํฐ ๊ฐ์ Grag๋ก ๋ณ๊ฒฝ๋์ด์ผํ์ง๋ง "Faker"๊ทธ๋๋ก์ด๋ค. ํจ์์ ๊ฐ์ ์ ๋ฌํ๊ธฐ๋๋ฌธ์ ํจ์ ๋ด๋ถ์์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ด ๋ฐ๋์์์๋ ๋ถ๊ตฌํ๊ณ ์๋ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํ ๊ฒ์ด๋ค. ํจ์ ๋ด๋ถ์์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด, obj๋ ์ง์ญ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๊ฐ ๋๋ฉฐ, ์ด ์ง์ญ ๊ฐ์ฒด๋ ํจ์๊ฐ ์คํ์ ๋ง์น๋ ์๊ฐ ์ฆ์ ํ๊ดด๋๋ค.
ํ์
ํ๋ณ
typeof
์ฐ์ฐ์๋ ๋ณ์๊ฐ ์์ ํ์
์ธ์ง ํ์
ํ๊ธฐ์ ์ต์์ด์ง๋ง, ์ฐธ์กฐ๊ฐ์ ๋ํด์๋ ํ๋ณํ๊ธฐ ์ด๋ ต๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ์ instanceof
๋ฅผ ์ฌ์ฉํ๋ฉด๋๋ค.
๋ชจ๋ ์ฐธ์กฐ ๊ฐ์ Object์ ์ธ์คํด์ค์ธ ๊ฒ์ผ๋ก ์ ์๋์ด ์์ผ๋ฏ๋ก ํญ์ true๋ฅผ ๋ฐํํ๋ค.
์ฐ์ฐ์
์ผ์น/๋ถ์ผ์น vs ๋์ผ/๋น๋์ผ ์ฐ์ฐ์
๋์ผ(==
)/๋น๋์ผ(!=
) ์ฐ์ฐ์์ ์ผ์น(===
)/๋ถ์ผ์น(!==
) ์ฐ์ฐ์๋ ๊ฐ์ ์ผ์ํ์ง๋ง ์ผ์น, ๋ถ์ผ์น ์ฐ์ฐ์๋ ํผ์ฐ์ฐ์์ ํ์
์ ๋ณํํ์ง ์๊ณ ๊ทธ๋๋ก ๋น๊ตํ๋ค.
๋์ผ ์ฐ์ฐ์(==
)๋ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ ๋ค์ ๋น๊ต๋ฅผ ํ๋ฏ๋ก ๋ ๊ฐ์ด ๋์ผํ๋ค๊ณ ๋ณธ๋ค. ํ์ง๋ง ์ผ์น ์ฐ์ฐ์(===
)๋ ๋ณํํ์ง ์์ ์ํ์์ ๋น๊ตํ๋ฏ๋ก ์ผ์นํ์ง ์๋ค๊ณ ๋ฐํํ๋ค.
ํจ์
ECMAScript ํจ์๋ ๋งค๊ฐ๋ณ์ ์ซ์๋ฅผ ๋ฐ์ง์ง ์์ผ๋ฉฐ ๋ฐ์ดํฐ ํ์
๋ ์ฒดํฌํ์ง ์๋๋ค. ํจ์์์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ ๊ฐ ๋ฐ๋๋ก ๋ง๋ค์๋๋ผ๋ ๋ฐ๋์ ๋งค๊ฐ๋ณ์ ๋ ๊ฐ๋ฅผ ๋๊ฒจ์ผํ๋ ๊ฑด ์๋๋ค. ECMAScript์ ๋งค๊ฐ๋ณ์๊ฐ ๋ด๋ถ์ ์ผ๋ก๋ ๋ฐฐ์ด๋ก ํํ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๋ฐฐ์ด์ ํญ์ ํจ์์ ์ ๋ฌ๋์ง๋ง ํจ์๋ ๋ฐฐ์ด์ ์ด๋ค ๊ฐ์ด ๋ค์ด์๋์ง ์ฒดํฌํ์ง ์๋๋ค. ํจ์๋ arguments
๋ผ๋ ๊ฐ์ฒด๋ฅผ ํตํด์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ ๊ทผํ ์ ์๋ค.
arguments๋ ์ธ๋ฑ์ค ๊ฐ์ผ๋ก ์ ๊ทผํ ์ ์๋ค.
ECMAScript ํจ์์๋ ๋ค๋ฅธ ์ธ์ด์์ ์ฌ์ฉํ๋ ์ค๋ฒ๋ก๋ฉ์ด ์๋ค.๊ฐ์ ์ด๋ฆ์ผ๋ก ํจ์๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ์ํ๋ฉด ๋ง์ง๋ง ํจ์๊ฐ ํ ๋น๋๋ค.
Last updated