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?