본문 바로가기
개발/JAVASCRIPT

Javascript ES6 - 함수(function) 정리 2

by lucidmaj7 2020. 3. 24.
728x90
반응형

5. 함수를 결정하는 것

보통 다른 프로그래밍 언어에서는 함수의 시그니처에 매개변수가 포함됩니다. C++에서 f()와 f(int a)는 다른 함수이죠. 하지만 자바스크립트에서는 매개변수가 다르더라도 함수의 이름이 같다면 같은 함수를 가리킵니다.

function foo(x)
{
    console.log(`x는 ${x}`);
}
const param = 5;
foo(); //x는 undefined
foo(param); //x는 5

 

6. 매개변수 해체

자바스크리트 함수의 매개변수는 해체 될 수 있습니다. 그 예는 아래와 같습니다. 프로퍼티 이름은 반드시 유효한 식별자여야 하고 들어오는 객체에 해당하는 프로퍼티가 없는 변수는 undefined를 할당 받습니다.


function getSentence({subject, verb, object}){
    console.log(`${subject} ${verb} ${object}.`);
}

const obj  = { 
    subject:"I",
    verb: "love",
    object:"you"
    };

getSentence(obj); //I love you

마찬가지로 배열에 대해서도 해체할 수 있습니다.

function getSentence([subject,verb,object]){
    console.log(`${subject} ${verb} ${object}`);
}

const arr = ["I","love","you"];

getSentence(arr); //I love you

 

7. 확산 연산자

확산연산자를 사용하여 함수를 호출 할 수도 있습니다. 이떄 확산 연산자는 반드시 마지막 매개변수여야 합니다.

function addPrefix(prefix, ...words){
    for(let i= 0 ;i< words.length;i++)
    {
        console.log(`${prefix} ${words[i]}`);
    }
}


addPrefix('I love', 'javascript', 'c++');
/*
I love javascript
I love c++
*/

 

8. 매개변수 기본값

ES6에는 매개변수에 기본값을 지정하는 기능도 추가 되었습니다. 일반적으로 매개변수를 지정하지 않으면 undefined로 할당됩니다.

function add(a , b=5)
{
    console.log(`${a} + ${b} = ${a+b}`);
} 

add(); //undefined + 5 = NaN
add(1); //1 + 5 = 6
add(1,10); //1 + 10 = 11
728x90
반응형

댓글