๐ก ๋์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํต์ฌ ๊ฐ์ด๋๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํฉ๋๋ค.
3.1 ํจ์ ์ธ์์ ๊ธฐ๋ณธ๊ฐ(ES6 ์ด์ )
ES6 ์ด์ ์๋ ํจ์ ์ธ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ์ฝ์ง ์์๋ค. ์๋์ ๊ฐ์ ์ฝ๋๋ก ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ์ ์๋ค.
function getLocation(city,country,continent){
if(typeof country === 'undefined'){
country = 'Italy'
}
if(typeof continent === 'undefined'){
continent = 'Europe'
}
console.log(continent,country,city)
}
getLocation('Milan')
// Europe Italy Milan
getLocation('Paris','France')
// Europe France Paris
์ธ์์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ฝ๋๋ ๋์ฑ ๋ณต์กํด์ง๋ค. ์๋ ์ฝ๋์ฒ๋ผ parameter์ undefined
๋ฅผ ์ผ์ผํ ์ ๋ฌํด์ผ๋ง ์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค.
function getLocation(continent,country,city){
if(typeof country === 'undefined'){
country = 'Italy'
}
if(typeof continent === 'undefined'){
continent = 'Europe'
}
console.log(continent,country,city)
}
getLocation(undefined, undefined,'Milan')
// Europe Italy Milan
getLocation(undefined,'Paris','France')
// Europe Paris France
3.2 ํจ์ ๊ธฐ๋ณธ๊ฐ ์ธ์ (ES6 ์ดํ)
ES6 ์ดํ ํจ์ ๊ธฐ๋ณธ๊ฐ ์ธ์๋ฅผ ๋งค์ฐ ์ฝ๊ฒ ์ค์ ํ ์ ์๋ค.
function calculatePrice(total, tax = 0.1, tip = 0.05){
// When no value is given for tax or tip, the default 0.1 and 0.05 will be used
return total + (total * tax) + (total * tip);
}
Use Destructuring Assignment
๋์คํธ๋ญ์ฒ๋ง(๊ตฌ์กฐ ๋ถํด ํ ๋น)์ ์ด์ฉํด ํจ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ๋ ์ฌ์ฉํ ์ ์๋ค.
// Use Destructuring Assignment (ํจ์์ parameter๋ฅผ ๊ฐ์ฒด๋ก ์ค์ )
function calculatePrice({
total = 0,
tax = 0.1,
tip = 0.05} = {}){
return total + (total * tax) + (total * tip);
}
const bill = calculatePrice({ tip: 0.15, total:150 });
// 187.5
๋์คํธ๋ญ์ฒ๋ง์ ์ด์ฉํด ํจ์์ ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ฒด๋ก ์ค์ ํ๋ฉด ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ด๋ป๊ฒ ์ ๋ฌํ๋ ์๊ด์์ด ๊ทธ ์ธ์๋ ๊ฐ์ฒด๊ฐ ๋๋ค. ์ด๋ ์ธ์์ ๋ง์ง๋ง์ ={}
๊ธฐํธ๋ฅผ ๋น ๋จ๋ฆฌ์ง ์๋๋ก ์ฃผ์ํด์ผ ํ๋ค. ์ด ๊ธฐํธ๊ฐ ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ={}
๊ธฐํธ์ ์ ๋ฌด์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ ์ฐจ์ด๋ฅผ ๋ค์ ์ฝ๋๋ฅผ ํตํด ํ์ธํด๋ณด์.
={}
๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
function calculatePrice({
total = 0,
tax = 0.1,
tip = 0.05} = {}){
return total + (total * tax) + (total * tip);
}
calculatePrice({});
// 0
calculatePrice();
// 0
calculatePrice(undefined)
// 0
={}
๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ
function calculatePrice({
total = 0,
tax = 0.1,
tip = 0.05}){
return total + (total * tax) + (total * tip);
}
calculatePrice({});
// cannot read property `total` of 'undefined' or 'null'.
calculatePrice();
// cannot read property `total` of 'undefined' or 'null'.
calculatePrice(undefined)
// cannot read property `total` of 'undefined' or 'null'.
3.3 QUIZ
Q 3.1. ๋ค์ ์์ ์ ์ํํ๋ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์.
๋ค์์ฝ๋์์ arg1๊ณผ arg2๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ฒซ ๋ฒ์งธ๋ tax๋ฅผ ๋ํ๋ด๊ณ ๋ ๋ฒ์งธ๋ tip์ ๊ฐ์ ๋ํ๋ด๊ฒ ๋ง๋ค์ด๋ณด์.
tax์๋ ๊ธฐ๋ณธ๊ฐ 0.1์ ์ง์ ํ๊ณ tip์๋ ๊ธฐ๋ณธ๊ฐ 0.05๋ฅผ ์ง์ ํ์.
function calculatePrice(total, arg1, arg2) {
return total + (total * tax) + (total * tip);
}
calculatePrice(10);
// ์์ ๊ฒฐ๊ณผ: 11.5
- ๋ต
function calculatePrice(total, tax = 0.1, tip = 0.05) { return total + (total * tax) + (total * tip); }
Q 3.2. ๋ค์ ์ฝ๋์ ์ฌ๋ฐ๋ฅธ ์ถ๋ ฅ์?
var b = 3;
function multiply(a, b = 2) {
return a * b;
}
console.log(multiply(5));
- ๋ต
- 10
'Tech > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Chapter 05: ๋ฌธ์์ด ๋ฉ์๋ (Additional string methods) (0) | 2022.01.18 |
---|---|
Chapter 04: ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด (Template literals) (0) | 2022.01.16 |
์ฌ๋ค์ผ ๊ฐค๋ฌ๋ฆฌ ๊ตฌํ / Gallery with Thumbnail Slider / Swiper - Thumbs gallery (0) | 2022.01.11 |
๋ชจ๋ฐ์ผ ๋๋ฐ์ด์ค ๋ถ๊ธฐ / Javascript ๋ฐ์ํ ์ฒ๋ฆฌ (0) | 2022.01.10 |
Chapter 02: ํ์ดํ ํจ์ (Arrow Function) (0) | 2022.01.08 |