์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฒ์ ์ ์ด ๋์ด๋ ์ด์ ์ ์์๋ ๊ธฐ๋ฅ์ ์ญ์ ํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝ ํ์ง ์๋๋ค.
- ES5 ๋ถํฐ ์๊ฒฉ๋ชจ๋, ๋ฐฐ์ด๋ฉ์๋๊ฐ ์ถ๊ฐ
- ES6 ๋ถํฐ const, let, Promise, Arrow function, class ๋ฑ์ ๋ฌธ๋ฒ๋ค์ด ๋๊ฑฐ ์ถ๊ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฝ์ ์์น๋ ๋ณดํต body ํ๊ทธ์ ๋งจ ๋์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ตฌ์กฐ
- ๋ฌธ(statement)์ ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถํ๋ค.
- ๋ฌธ์ ๊ฐ, ์ฐ์ฐ์, ํค์๋, ๋ช ๋ น์ด, ํํ์ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ๊ณต๋ฐฑ์ ๋ณํฉํ๋ค.
์ฃผ์
// ํ ์ค ์ฃผ์
/*
์ฌ๋ฌ์ค ์ฃผ์
*/
์๊ฒฉ ๋ชจ๋
"use strict";
- use stirict ๋ผ๋ ์ง์์๋ฅผ ํตํด ์๊ฒฉ๋ชจ๋๋ฅผ ํ์ฑํ ํ์๋๋ง ์ต์ ๋ฌธ๋ฒ์ด ๋ฐ์๋๋ค.
- ๋ณดํต ์ฝ๋์ ์ต์๋จ์ ์ถ๊ฐํ๋ค.
- class ๋ฌธ๋ฒ์ ๊ฒฝ์ฐ ์๊ฒฉ ๋ชจ๋๊ฐ ๊ธฐ๋ณธ์ด๋ค.
๋ณ์
- ๋ณ์ ์ด๋ฆ ๊ท์น
- ๋ณ์๋ ์ซ์๋ก ์์ํ ์ ์๋ค.
- ๋์ด์ฐ๊ธฐ๊ฐ ์๋๋ค.
- ์์ฝ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- $, _๋ฅผ ์ ์ธํ ํน์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ค.
- ๊ด์ต์ ์ผ๋ก class๋ ์ฒซ ๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก, ๋๋จธ์ง๋ ์๋ฌธ์๋ก ์์ํ๋ค.
- var, let, const
- var : ES5 ์ด์ , ํจ์ ๋ ๋ฒจ ์ค์ฝํ์ด๋ฉฐ ์ง๊ธ์ ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์๋๋ค.
- let : ES5, ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ์ด๋ฉฐ ๋ณ๊ฒฝ๊ฐ๋ฅํ ์๋ฃํ์ด๋ค.
- const : ES5, ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ์ด๋ฉฐ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ ์๋ฃํ(์์)์ด๋ค.
์ฐ์ฐ
- ์ฐ์ ์ฐ์ฐ์ : +, -, /, *, **, %
- ํ ๋น ์ฐ์ฐ์ : =, +=, -=, /=, *=, **=, %=
- ๋
ผ๋ฆฌ ์ฐ์ฐ์ : &&, ||, !, !!, &, |
- ์ฐธ → true → 1
- ๊ฑฐ์ง → false → 0
- &&๋ ๊ณฑ (๋ ๋ค ์ฐธ์ด๋ฉด ์ฐธ)
- ||๋ ํฉ (๋ ๋ค ๊ฑฐ์ง์ด๋ฉด ๊ฑฐ์ง)
- !๋ ๋ถ์
- ๋จ๋ฝ ํ๋ก ํ๊ฐ
- ๋น๊ต ์ฐ์ฐ์ : >, >=, <, <=, ==, !=, ===, !==
- === ๋ ํ์ ๊น์ง ์ฒดํฌ
- ๋จํญ ์ฐ์ ์ฐ์ฐ์ : ++x, x++, --x, x--
- ++x ์ฆ๊ฐ ํ ์ถ๋ ฅ
- x++ ์ผ๋จ ์ถ๋ ฅ ํ ์ฆ๊ฐ
- nullish ๋ณํฉ ์ฐ์ฐ์ : ??
- typeof ์ฐ์ฐ์
- ํ๋กํผํฐ ์ ๊ทผ ์ฐ์ฐ์
let x = {'one': 1, 'two': 2};
// ๋ง์นจํ ํ๋กํผํฐ ์ ๊ทผ ์ฐ์ฐ์
console.log(x.one);
// ๋๊ดํธ ํ๋กํผํฐ ์ ๊ทผ ์ฐ์ฐ์
console.log(x['one']);
- ๊ด๊ณ ์ฐ์ฐ์
- ํค๋ง ๊ฐ์ง๊ณ ํ๋จ
10 in [10, 20, 30] // false
1 in [10, 20, 30] // true
1 in 'hello' // error
'name' in {'name':'hojun', 'age':10} //true
'length' in [10, 20, 30]; // true → consol.dir()๋ก ํ์ธํ๋ฉด ์ดํดํ๊ธฐ ์ฌ์
๋ณ์์ ํ
๋ณ์์ ํ์
- ์์ํ์ (primitive types) : number, string, boolean, null, undefined, symbol(ES6 ์ถ๊ฐ, ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์ ์ผํ ๊ฐ)
- ์ฐธ์กฐํ์ (reference types) : object(object, array, map, set), function
- Number(์ซ์)
- ํํ : 10, 10.123, -10
- ํธ์ถ : ๋ณ์๋ช
- String(๋ฌธ์์ด)
- ํํ : 'abcde', "abcde", abcde, abcde${๋ณ์๋ช }
- ํธ์ถ : ๋ณ์๋ช , ๋ณ์๋ช [0] (๋ณ์๋ช [index], ํธ์ถ์ ํ ์ ์์ง๋ง ๊ฐ๋ณ ๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ
- Boolean(๋
ผ๋ฆฌ๊ฐ)
- ํํ : true, false
- ํธ์ถ : ๋ณ์๋ช
- undefine : undefind
- ํํ : let a, console.log(a)
- null : object
- ํํ : let a = null
- Array(๋ฐฐ์ด) : object
- ํํ
- ํธ์ถ : ๋ณ์๋ช , ๋ณ์๋ช [0], ๋ณ์๋ช [0][0] (๋ณ์๋ช [index], ๊ฐ๋ณ๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ)
- ํํ
- Object(๊ฐ์ฒด)
- ํํ : key์ value๋ก ์ด๋ฃจ์ด์ง
- ํธ์ถ : ๋ณ์๋ช , ๋ณ์๋ช .์ง์ญ์ด๋ฆ, ๋ณ์๋ช ['์ง์ญ์ด๋ฆ'] (๋ณ์๋ช .key, ๋ณ์๋ช [key])
- ์์ , ์ญ์ :
- ์์ : value['hello'] = 'world', value['hello'] = null
- ์ญ์ : delete value['hello']๋ ์ถ์ฒํ์ง ์์(๋ฉ๋ชจ๋ฆฌ ์์ 'world'๊ฐ ๋จ์์์, value['hello'] = null์ ๊ถ์ฅ)
- Map : object
- ie์์ ์ ๋๋ก ์๋ํ์ง ์๊ณ babel์ ์ฌ์ฉํด์ผํ๋ค.
- Set : object
- ie์์ ์ ๋๋ก ์๋ํ์ง ์๊ณ babel์ ์ฌ์ฉํด์ผํ๋ค.