전역 변수에 대해 잘 알고 계시리라 믿습니다. a=1인 함수 범위에 정의된 변수는 전역 변수가 됩니다. 전역 범위에서 다음 세 가지 형식을 사용하여 전역적으로 표시되는 이름을 만들 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
<스크립트>
var a = 1;
b = 2;
window.c = 3;
</script>
b=2 메소드의 경우 실제로는 c와 동일합니다. 이 할당문을 실행하면 범위 체인의 맨 위에 도달할 때까지 b라는 변수를 찾지 않습니다. Window에 속성 b를 추가하고 값을 할당합니다.
var와 non-var 사이에는 두 가지 차이점이 있습니다.
1 var의 전역 변수는 삭제할 수 없습니다. 왜냐하면 delete는 객체의 삭제 가능한 속성을 지능적으로 삭제하고 var에 의해 정의된 전역 속성은 삭제할 수 없는 것으로 표시되기 때문입니다. 삭제에 실패하면 오류가 발생하지 않습니다. 삭제의 반환 값은 true|false입니다.
2 var로 정의된 전역 변수는 승격되지만 var 없이 정의된 전역 변수는 승격되지 않습니다. 다음 프로그램의 실행 결과를 볼 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
<스크립트>
경고(a);
var a=1;
</script>
다음과 같이 코드 코드를 복사합니다.
<스크립트>
경고(a);//오류, 정의되지 않음
a=1;
</script>