<๋ณ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ>
let ํค์๋์ const ํค์๋์ ์ฐจ์ด
const - always
let - sometimes
var - never
const ์ฌ์ ์ธ ๊ธ์ง, ์ฌํ ๋น ๊ธ์ง
let ์ฌ์ ์ธ ๊ธ์ง, ์ฌํ ๋น ๊ฐ๋ฅ
var ์ฌ์ ์ธ ๊ฐ๋ฅ, ์ฌํ ๋น ๊ฐ๋ฅ
const a = b;
const a = c;
//์ฌ์ ์ธ ๊ธ์ง
const a = b;
a = c;
//์ฌํ ๋น ๊ธ์ง
let a = b;
let a = c;
//์ฌ์ ์ธ ๊ธ์ง
let a = b;
a = c;
//์ฌํ ๋น์ ๊ฐ๋ฅ
var a = b;
var a = c;
a = d;
//์ฌ์ ์ธ, ์ฌํ ๋น ๊ฐ๋ฅ
ํจ์ ์ ์ธ ๋ฐฉ๋ฒ
ํจ์ ์ ์ธ์ => ํธ์ด์คํ ์ ์ํฅ์ ๋ฐ๋๋ค. - ์ ์ธ ์ ์ ํธ์ถ๋๋ ์ ์์ ์ผ๋ก ๋์!
(ํธ์ด์คํ : ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ง์ผ๋ก, ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํด์ํ ๋ ๋งจ ์๋ก ๋์ด ์ฌ๋ ค์ง๋ค. )
function ํจ์๋ช
() {
๊ตฌํํ ๋ก์ง
};
ex)
function getQuadrangleArea (width, height) {
return quadrangle = width * height;
};
console.log(getQuadrangleArea (3,4)); // 12 ์ถ๋ ฅ๋๋ค
ํจ์ ํํ์ =>ํธ์ด์คํ ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค. - ์ ์ธ ์ ์ ํธ์ถ๋๋ฉด ์๋ฌ!
(ํด๋ก์ ธ๋ก ์ฌ์ฉ๋๋ค. - ๋ด๋ถํจ์๊ฐ ์ ์ธ๋ ์๊ฐ์ ์ ์ฅ๋ ์ธ๋ถํจ์ ์ฐธ์กฐ ์ ๋ณด๋ฅผ ์ด์ฉํ๋ ๊ฒ. **์ถ๊ฐ๊ณต๋ถ ํ์
์ฝ๋ฐฑ์ผ๋ก ์ฌ์ฉ๋๋ค. - ๋ค๋ฅธ ํจ์์ ์ธ์(parameter)๋ก ๋๊ธธ ์ ์๋ค. ) ** ์ถ๊ฐ๊ณต๋ถ ํ์
const ํจ์๋ช
= function () {
๊ตฌํ ๋ก์ง
};
ex)
const getQuadrangleArea = function (width, height) {
return quadrangle = width * height;
};
console.log(getQuadrangleArea(3,4)); // 12 ์ถ๋ ฅ
ํ์ดํ ํจ์ => ํจ์์ ๋ณธ๋ฌธ(body)์ return๋ฌธ๋ง ์๋ ๊ฒฝ์ฐ, return๊ณผ {}์๋ตํด์ ์ธ ์ ์๋ค. ์๊ดํธ๋ ์ฌ์ฉ๊ฐ๋ฅ. (๋์ด ์ธํธ)
const ํจ์๋ช
= (parameter) => {
๊ตฌํ ํจ์;
};
ex)
const getQuadrangleArea = (width, height) => {
return quadrangle = width * height;
};
console.log(getQuadrangleArea(3,4)); // 12 ์ถ๋ ฅ
JS์ ์์, ๊ฐ์ฒด ํ์
์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์ ์ซ์, ๋ฌธ์์ด, boolean, undefined, null, symbol, ๊ฐ์ฒด ํ์ 7๊ฐ์ง๋ค.
๊ณต์์ ์ผ๋ก ํจ์ํ์ด๋ผ๋ ํ์ ์ ์กด์ฌํ์ง ์๊ณ ํจ์๋ ๊ฐ์ฒดํ์ ์ํ๋ค. ํ์ง๋ง typeof ์ฐ์ฐ์๋ฅผ ํตํด ํ์ ๊ฒ์ฌ๋ฅผ ํ ๋์๋ function ์ด๋ผ๊ณ ์ถ๋ ฅ ํด์ค๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์ ์์ ์๋ฃํ์ ์ฐธ์กฐ ์๋ฃํ(Object)๋ก ๋๋๋ค.
์์ ์๋ฃํ = string, number, bigint, boolean, symbol, undefined, null
์ฐธ์กฐ(๊ฐ์ฒด) ์๋ฃํ(Object) = ๊ฐ์ฒด, ๋ฐฐ์ด, ํจ์
์ฐจ์ด์
1. ์์ ํ์ ์ ๊ฐ, ์ฆ ์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ด๋ค.
๊ฐ์ฒด(์ฐธ์กฐ) ํ์ ์ ๊ฐ, ์ฆ ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ด๋ค.
2. ์์ ๊ฐ์ ๋ณ์์ ํ ๋นํ๋ฉด ๋ณ์ (ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)์๋ ์ค์ ๊ฐ์ด ์ ์ฅ๋๋ค.
์ด์ ๋นํด ๊ฐ์ฒด๋ฅผ ๋ณ์์ ํ ๋นํ๋ฉด ๋ณ์ (ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)์๋ ์ฐธ์กฐ ๊ฐ์ด ์ ์ฅ๋๋ค.
3. ์์ ๊ฐ์ ๊ฐ๋ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ๋ฉด ์๋ณธ์ ์์ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ค. (๊ฐ์ ์ํ ์ ๋ฌ)
๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ๋ฉด ์๋ณธ์ ์ฐธ์กฐ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ค. (์ฐธ์กฐ์ ์ํ ์ ๋ฌ)
undefined ์ null์ ์ฐจ์ด
undefined ์ null๋ ๋ ๋ค ๋ณ์์ ๊ฐ์ด ์์์ ๋ปํ๋ค.
๋ค๋ง, undefined ๋ ๋ณ์๋ฅผ ์ ์ธ๋ง ํ๊ณ ๊ฐ์ ํ ๋นํ์ง ์์์ ๋ ์๋์ ์ผ๋ก ๋ค์ด๊ฐ๋ฉฐ, null์ ๋ณ์์ ์ธ์์ ์ผ๋ก null ์ด๋ผ๋ ๊ฐ์ ํ ๋นํด์ฃผ์ง ์์ผ๋ฉด ๋ค์ด๊ฐ์ง ์๋๋ค. ๋ฐ๋ผ์ ๋ณ์์ ์๋์ ์ผ๋ก ๊ฐ์ ํ ๋นํ์ง ์์๋ค๋๊ฑธ ํ์ํ๊ธฐ ์ํด์ null ์ด๋ผ๋ ๊ฐ์ ํ ๋นํด์ค ๋๊ฐ ๋ง๋ค!
๋ฐ์ค๋ก ํํํ์๋ฉด,
undefined ๋ ๋น ๋ฐ์ค๋ง ์๋ ์ํ,
null ์ ๋น ๋ฐ์ค์ '๋น์ด ์์' ์ด๋ผ๊ณ ํ์ํด๋์ ์ํ!