C/C와 비교하여 ECMAScript의 for 루프는 로컬 컨텍스트를 생성할 수 없습니다.
alert(k); // 루프가 종료되었지만 변수 k는 여전히 현재 범위에 있습니다.
언제든지 변수는 var 키워드를 통해서만 선언할 수 있습니다.
위의 할당문:
a = 10
이는 단순히 전역 객체에 새로운 속성을 생성합니다(그러나 변수는 아닙니다). "변수가 아니다"는 것은 변경할 수 없다는 뜻이 아니라, ECMAScript 명세의 변수 개념에 맞지 않는다는 뜻이므로 "변수가 아니다"(전역객체의 속성이 될 수 있는 이유) 이는 전적으로 JavaScript 객체에 전역이 있기 때문에 이 작업은 변수를 선언하는 것이 아니라 전역 객체에
속성을 추가하는 것입니다.
문제를 설명하는 간단한 예를 살펴보겠습니다
우선 모든 전역 변수는 window의 속성입니다. var a = 1은 window.a = 1;
전역 변수가 선언되었는지 확인하려면 다음 방법을 사용하면 됩니다
창의 "변수 이름"
위 예시 분석에 따르면, 변수 선언 시에는 선언된 로컬 변수 앞에 var를 추가해야 합니다. 글로벌 변수를 선언할 경우에는 var를 추가하지 않아도 됩니다(변수 수를 제한하는 것이 가장 좋습니다. 전역 변수를 사용하고 지역 변수를 사용해 보세요)
다음은 var 사용의 여러 기능을 설명합니다
var 문을 사용하여 변수를 여러 번 선언하는 것은 합법적일 뿐만 아니라 오류도 발생하지 않습니다.
재사용된 명령문에 초기 값이 있는 경우 이는 단순히 할당 명령문처럼 작동합니다.
초기값 없이 선언을 재사용하면 원래 변수에 아무런 영향을 미치지 않습니다.
var 없이 선언된 변수는 전역 변수로 존재합니다. var로 선언된 변수는 특히 함수 내에서 지역 변수입니다. 게다가 테스트 후에는 var를 사용하여 선언하는 것이 var를 사용하지 않는 것보다 빠릅니다. 함수에 로컬 변수를 최대한 많이 설정하면 안전하고 빠르며 함수 내 전역 변수의 무작위 조작으로 인해 변수 연산이 더 합리적으로 발생하지 않습니다.
객체를 선언할 때는 새로운 방식보다 훨씬 빠른 객체의 자기 얼굴 방식을 사용하는 것이 가장 좋습니다.
변수 이름은 의미와 사양을 고려하여 변수 이름이 약간 길어질 수 있지만 변수 이름의 길이도 코드 실행 속도에 영향을 미치므로 주의하세요. 긴 변수 이름을 사용한 선언은 짧은 변수 이름만큼 빠르게 실행되지 않습니다.