default-parameter-template-literals-arrow-functions
Default parameter
parameter๊ฐ undefined
์ผ ๋ ๋ค์ด๊ฐ default parameter๋ฅผ ์ฌ์ฉํ๋ค. ํจ์๋ ๊ฐ๋ฅํ๋ค.
example - default parameter๋ก ํจ์์ฌ์ฉ
function getNumber () {
console.log('getting number..');
return 666;
}
function logNumber (num = getNumber()) {
console.log(num);
}
logNumber(1000); //1000
ํจ์๋ ์ฌ์ฉ๊ฐ๋ฅ ํ๋ค. example - ์ธ์(argument)๊ฐ false, null , undefined ์ผ ๋
function logNumber (num = 3) {
console.log(num);
}
logNumber(false); // false
logNumber(null) // null
logNumber(undefined) // 3
Template Literals
``์ ์ฌ์ฉํ๊ณ ํจ์๋ ๊ฐ๋ฅํ๋ค.'ใ '/
function getName () {
return 'sla';
}
console.log(`my name is ${getName() + getName()}`);
Arrow Functions
ํจ์ํํ์
์ผ๋ก๋ง ์จ์ผํ๋ค.hoisting์ด ์๋๋ค. (๋ ์๊ฒฉํด์ก๋ค.)
this๊ฐ ์๋ค. ๊ฐ์ฅ๊ฐ๊น์ด ์์ญ์ ์๋ ๊ฐ์ฒด๋ฅผ this๋ก ์ด๋ค.
arguments ํค์๋๊ฐ ์กด์ฌํ์ง ์๋๋ค.(rest parameter๋ก ๋์ฒดํ๋ค)
const multiply = a => console.log(a);
console.log(multiply);
ํจ์ ํํ์์ ์ฌ์ฉํ์ผ๋ฉฐ, ๋งค๊ฐ๋ณ์๊ฐ 1๊ฐ์ผ๋๋ ()
๊ฐ ์์ด๋ ๋๋ฉฐ return์ด ํ์ค๋ก ํํ๊ฐ๋ฅ ํ ๊ฒฝ์ฐ {}
๋ ์์ด๋ ๋๋ค.
arguments ํค์๋๋ ์์ง๋ง ์ธ๋ถํจ์๋ ํจ์์ ์ธ์, ๋ด๋ถํจ์๋ arrow function์ ์ธ ๊ฒฝ์ฐ
function foo () {
console.log(arguments);
const fn = () => {
console.log(arguments);
};
fn();
}
foo(1, 2, 3);
this
function foo () {
console.log(this);
const fn = () => {
console.log(this);
};
fn();
}
foo(1, 2, 3);
scope chain์ ํ์ ๊ฐ์ฅ ๊ฐ๊น์ด this๋ฅผ ๋ฐ์๋ค.
const name = 'ni';
const obj = {
name: 'sla',
logName: () => {
console.log(this.name);
}
}
obj.logName(1, 2, 3);
const๊ฐ window์ ๋ถ์ง ์์์ console.log๊ฐ ์ฐํ์ง ์๋๋ค.
var name = 'ni';
const obj = {
name: 'sla',
logName: () => {
console.log(this.name);
}
}
obj.logName(1, 2, 3);
var๋ก ํ์ ๋๋ this๊ฐ window.name์ด ๋์ด์ 'ni'๊ฐ ์ฝ์์ ์ฐํ๋ค.
Last updated
Was this helpful?