JS 에 블록 역할 영역 이라는 개념 이 없 기 때문에 다음 코드 의 i 는 전체 환경 에서 방문 할 수 있 습 니 다. 그러나 이러한 단점 이 있 습 니 다. 전체 환경 을 오염 시 켰 습 니 다. 대형 프로젝트 에서 변수 충돌 을 초래 할 수 있 기 때 문 입 니 다.
for(var i=0;i<5;i++){
console.log(i)
}
그러나 JS 에는 블록 역할 영역의 기능 을 실현 할 수 있 는 문장 이 있다.
JS 에서 블록 역할 영역 효과 의 실현:
with var obj={
a:4,
b:5
};
with(obj){
a=5;
b=4;
}
console.log(obj);
try / catch try / catch 의 catch 분 구 는 하나의 역할 영역 을 만 듭 니 다: try{
}catch (err){
console.log(err)
}
위 코드 의 err 는 catch 문장 에서 만 접근 할 수 있 습 니 다.
let / const ES6 에 두 개의 성명 변 수 를 추가 하 는 방식 입 니 다. let 와 const. 이 두 가지 방식 으로 성명 한 변 수 는 임의의 역할 영역 에 연결 되 어 있 습 니 다. 보통 {...} 의 내부 입 니 다. 두 가지 차이 점: let 성명 의 변 수 는 수정 할 수 있 고 const 는 수정 할 수 없습니다. IIFE 즉시 실행 함수 도 변 수 를 함수 역할 영역 에 밀봉 하 는 역할 을 하여 전체 환경 오염 을 방지 할 수 있 습 니 다. (function () {
for(var i=0;i<5;i++){
console.log(i)
}
})()