728x90
반응형
함수 선언문 vs 함수 표현식
함수 선언문 : 어디서든 호출 가능
실행 전 초기화 단계에서 코드의 모든 함수 선언문을 찾아서 생성해놓는 호이스팅(hoisting) 때문이다.
sayHello();
function sayHello(){
console.log('Hello');
}
함수 표현식 : 코드에 도달하면 생성
let sayHello = function(){
console.log('Hello');
}
sayHello();
화살표 함수(arrow function)
화살표 함수로 함수를 보다 간결하게 작성할 수 있다.
let add = function(num1, num2) {
return num1 + num2;
}
위 함수를 화살표 함수로 바꾸면
let add = (num1, num2) => {
return num1 + num2;
}
return문은 중괄호가 아닌 일반 괄호로 바꿀 수 있다.
let add = (num1, num2) => (
num1 + num2;
)
return문이 한 줄이라면 괄호도 생략할 수 있다.
let add = (num1, num2) => num1 + num2;
인자가 하나라면 괄호를 생략할 수 있다.
let sayHello = name => `Hello. ${name}`;
인자가 없다면 괄호를 생략할 수 없다.
let showError = () => {
alert('error!');
}
return문이 있다고 해도 return 전에 여러 줄의 코드가 있으면 일반 괄호를 사용할 수 없다.
let add = function(num1, num2){
const result = num1 + num2;
return result;
}
728x90
반응형
'Language > Javascript' 카테고리의 다른 글
[Javascript] 심볼(Symbol) (0) | 2021.12.17 |
---|---|
[Javascript] 계산된 프로퍼티(Computed property), 객체 메소드(Object methods) (0) | 2021.11.16 |
[Javascript] 생성자 함수 (0) | 2021.11.15 |
[Javascript] 객체(Object) (0) | 2021.11.15 |
[Javascript] var, let, const의 차이 - 호이스팅, TDZ, scope (0) | 2021.11.15 |