let upper = "upper";
fuction change_upper() {
upper = "lower";
}
alert(upper); // upper
change_upper();
alert(upper); // lower
let lower = "upper";
function same_name() {
let lower = "lower";
alert(lower);
}
same_name(); // lower
alert(lower); // upper
함수 선언
function mul(a, b) {
return a * b;
}
함수 표현식
let mul = function(a, b) {
return a + b;
};
| 함수 선언문 | 함수 표현식 | |
|---|---|---|
| 문법 | 독립된 구문 | 표현식의 일부 |
| 생성 시점 | 코드 블록 실행 전 | 실행 흐름이 표현식에 도달했을 때 |
| 스코프 | 함수가 선언된 코드 블록 안에서만 유효 | 할당을 통해 상위 스코프에서도 접근 가능 |
함수 표현식은 구문의 일종이고 여기서 익명 함수 선언은 코드블록이 아닌 값처럼 취급되므로 구문 종료 시 ';'을 붙여주어야 함