Scope : 변수 접근 규칙에 따른 유효 범위
let name = "Richard";
function showName() {
let name = "Jack"; // 지역 변수
// showName 함수 안에서만 접근 가능
console.log(name); // Jack
}
console.log(name); // Richard
showName();
console.log(name); // Richard
let name = "Richard";
function showName() {
name = "Jack"; // 전역 변수
// 선언(let)이 없기 때문에, 바깥 scope에 있는 name이라는 변수를 가져옴
console.log(name); // Jack
}
console.log(name); // Richard
showName();
console.log(name); // Jack
Scope는 중첩이 가능 - 함수 안에 함수를 넣을 수 있음
전역 범위를 대표하는 객체 : window
var myName = "Paul";
console.log(window.myName); // Paul
function foo() {
console.log('bar');
}
console.log(foo === window.foo); // true
Global Scope에서 선언된 함수, 그리고 var 키워드를 이용해 선
언된 변수는 window 객체와 연결
function adder(x) {
return function(y) {
return x + y;
}
}
adder(2)(3); // 5
let add100 = adder(100); // x의 값을 고정해놓고 재사용 가능
add100(2); // 102
add100(10); // 110
let add5 = adder(5);
add5(2); // 7