매개변수 해체
객체 해제가 가능하듯, 매개변수도 해체가능합니다.
해체 할당과 마찬가지로 프로퍼티는 유효한 식별자여야 하고, 들어오는 객체에 해당 프로퍼티가 없는 변수는 undefined를 할당받습니다.
1 | function print({subject, verb, object}) { |
배열도 해체 가능합니다.
1 | function print([subject, verb, object]) { |
매개변수 기본값
매개변수에 기본값을 지정할 수 있습니다.
1 | function print(a, b="default", c=1) { |
메서드
객체의 프로퍼티인 함수를 메서드라고 불러 일반함수와 구별합니다.
ES6에서는 간편하게 메서드를 추가할 수 있는 문법이 생겼습니다.
1 | // Before.. |
화살표 표기법
화살표 표기법은 간단히 말해 function이라는 단어와 중괄호 숫자를 줄이려고 고안된 단축 문법 입니다.
아래 세가지 단축문법이 있습니다.
- function을 생략해도 됩니다.
- 함수에 매개변수가 단 하나 뿐이라면 괄호(())도 생략할 수 있습니다.
- 함수 바디가 표현식 하나라면 중괄호와 return문도 생략할 수 있습니다.
화살표 함수는 항상 익명이며, 변수에 할당할 수 있습니다.
1 | const f1 = function() { return "hello!"; } |
화살표 함수는 익명함수를 만들어 다른 곳에 전달하려 할 때 가장 유용합니다.
화살표 함수는 객체 생성자로 사용할 수 없고, arguments 변수도 사용할 수 없습니다. ES6에서 확산 연산자가 생겼으니 arguments 변수는 필요가 없긴 합니다.