예를 들어 다음 코드는
{
var temp = "12";
}
alert(temp); //출력 12
일반적인 프로그래밍 경험에 따르면 경고 함수는 임시 변수에 액세스할 수 없습니다. 다른 블록에 있지만 JavaScript에는 블록 범위 개념이 없으므로 이 구문은 JS에서는 작동하지 않습니다. 그러나 JS 프로그램, 특히 대규모 프로그램이나 라이브러리를 작성할 때 이름 충돌을 방지하기 위해 제어 메커니즘을 사용합니다. 변수 범위가 필요하므로 블록 범위 개념을 구현하는 보다 일반적인 방법은 다음과 같습니다.
(function() {
var temp = "123";
})()
Alert(temp); 출력 오류
위의 코드와 마찬가지로 함수 표현식을 정의한 후 즉시 호출하는 형식입니다. 이 형식은 블록 범위의 개념을 모방하여 블록 네임스페이스의 내용을 보호하므로 이 방법은 매우 유용합니다. 일부 대규모 프로그램 라이브러리
(예: JQuery)에서 이름 충돌을 효과적으로 방지합니다. 실제로 JQuery는 이 방법을 사용하여 블록 범위를 구현합니다.