# ๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์(Default parameter)
๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์๋ ํจ์์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ด ์ ๋ฌ๋์ง ์์์ ๋ ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ค์ ํ๋ ๋ฌธ๋ฒ์ ๋๋ค.
# ๊ตฌ๋ฌธ
๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์์ ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
function functionName(param1 = defaultValue1, ..., paramN = defaultValueN) {
// ...
}
ํจ์๋ฅผ ์ ์ํ ๋ ๋งค๊ฐ๋ณ์์ ์ฐ์ธก์ = ๋ฅผ ์ถ๊ฐํ๊ณ ํจ์์ ๊ฐ์ด ์ ๋ฌ๋์ง ์์์ ๋ ์ค์ ํ ๊ธฐ๋ณธ ๊ฐ์ defaultValue ์์น์ ์ง์ ํฉ๋๋ค. ์ด ๋ฌธ๋ฒ์ ์ด์ฉํด ์ค์ ๋ก ๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ฉํ ์ฝ๋๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
function foo(param1 = 1, param2 = {}, param3 = 'korean') {
console.log(param1, param2, param3);
};
foo(30, { name: 'amy' }, 'american'); // 30, { name: 'amy' }, 'american'
foo(); // 1, {}, 'korean'
# ์ค๋ช
ES6 ์ด์ ๋ฌธ๋ฒ์์๋ or ์ฐ์ฐ์์ธ ||๋ฅผ ์ด์ฉํ์ฌ ์ ๋ ฅ๋ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ญ๋ณ์์ ์ฌ์ ์ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ์์ต๋๋ค. or ์ฐ์ฐ์์ ํน์ฑ์ผ๋ก ์ธํ์ฌ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ด falsy value(false ๋ก ํ๊ฐ๋๋ ๊ฐ, false, null, 0, undefined...) (opens new window) ์ธ ๊ฒฝ์ฐ์ || ์ฐ์ฐ์ ์ฐํญ์ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
# || ๋ฅผ ์ด์ฉํ ๊ธฐ๋ณธ๊ฐ ํ ๋น ๋ฐฉ์
function printPersonInfo(height, weight, age) {
var height = height || 180;
var weight = weight || 60;
var age = age || 66;
console.log(height, weight, age);
};
printPersonInfo(10, 200, 300); // 10, 200, 300
printPersonInfo(); // 180, 100, 66
๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ ํจ์ ๋ด๋ถ์์ ๊ฐ์ ๋น๊ตํ๊ณ ํ ๋นํ๋ ์ฐ์ฐ์ด ํ์ํ์ง ์์ต๋๋ค.
๊ฐ๋จํ๊ฒ ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๋ ๊ณณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ฏธ๋ฆฌ ์ ์ ํ ์ ์์ต๋๋ค.
# ๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์ ์ฌ์ฉ ๋ฐฉ์
function printPersonInfo(height = 180, weight = 60, age = 66) {
console.log(height, weight, age);
};
printPersonInfo(178, 58, 29); // 178, 58, 29
printPersonInfo(100); // 100, 60, 66
# ์ฃผ์์ฌํญ
ํ์ง๋ง ES6์ ๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์ ์๋์ง ์๊ณ undefined
๊ฐ์ธ ๊ฒฝ์ฐ์๋ง ๊ธฐ๋ณธ ๊ฐ์ ํ ๋นํฉ๋๋ค.
๋ฐ๋ผ์, || ์ฐ์ฐ์๋ฅผ ํตํ ์ง์ญ๋ณ์ ์ฌ์ ์ ๋ฐฉ์๊ณผ๋ ๊ทธ ๋์์ด ๋ค๋ฅด๋ฏ๋ก, ์์ ๋ฌธ๋ฒ์ ์ต์ํ ๊ฒฝ์ฐ ์ฃผ์ํด์ ์ฌ์ฉํ์ฌ์ผ ํฉ๋๋ค.
์๋ ์์ ์ฝ๋๋ก ์ข ๋ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
// || ๋ฅผ ์ด์ฉํ ๊ธฐ๋ณธ๊ฐ ๋ฐฉ์
function printFruit(name, weight, price) {
var name = name || 'apple';
var weight = weight || 10;
var price = price || 15000;
console.log(name, weight, price);
};
printFruit(0, false, null); // apple, 10, 15000
// ๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์ ์ฌ์ฉ ๋ฐฉ์
function printFruit(name = 'apple', weight = 10, price = 15000) {
console.log(name, weight, price);
};
// 0, false, null์ ๊ฐ์ผ๋ก ์ธ์ํ์ฌ ๊ธฐ๋ณธ๊ฐ ๋์ฒด๋์ง ์์
printFruit(0, false, null); // 0, false, null
// ๊ฐ์ด ์๊ฑฐ๋ undefined ์ผ ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋์ฒด
printFruit(); // apple, 10, 15000
โ Nullish coalescing operator Instance โ