Javascript는 ECMAScript 표준을 따르는 제품이므로 당연히 ECMAScript 표준을 따라야 합니다.
먼저 var 키워드의 정의와 사용법을 살펴보겠습니다
var 문은 변수를 선언하는 데 사용됩니다.
JavaScript 변수 생성을 변수 "선언"이라고도 합니다.
변수가 선언된 후 변수는 비어 있습니다(값이 없음).
변수를 복사하면 작업은 다음과 같습니다.
변수를 선언할 때 변수에 값을 할당할 수도 있습니다.
문법
매개변수 값
매개변수 | 설명 |
---|---|
변수 이름 | 필수입니다. 변수 이름을 지정합니다.
변수 이름에는 문자, 숫자, 밑줄, 달러 기호가 포함될 수 있습니다.
|
가치 | 선택사항. 변수의 값을 지정합니다. 참고: 변수 선언에서 값을 지정하지 않으면 기본값은 정의되지 않음 | 입니다.
모두가 많은 기사를 읽었고 모두 전역 변수의 암시적 선언을 피하라고 말합니다. 즉, 변수를 선언하기 전에 'var'을 추가해야 한다는 의미입니다. 그렇다면 'var'를 추가하는 것과 'var'를 추가하지 않는 것의 차이점은 무엇입니까? ?
먼저 코드를 살펴보겠습니다
var a = 'aa'; alert(a); //弹出 'aa' alert(window.a)//弹出'aa'
이해하면 전역 변수를 선언하면 실제로 'window' 개체에 속성을 추가하는 것입니다. 다음 코드는 동일한 효과를 갖습니다
a = 'aa'; alert(a); //弹出 'aa' alert(window.a)//弹出'aa'
그럼 "var a = 'aa' "와 "a = 'aa' "는 모두 전역 변수인데 차이점이 무엇인가요? 다음 두 코드를 살펴보세요
var a = 'aa'; delete window.a; // false a = 'aa'; delete window.a; // true
모두 '창' 개체에 속성을 추가하며, 하나는 삭제할 수 있고 다른 하나는 삭제할 수 없습니다. 하지만 'var'를 추가하면 범위와 관련됩니다. 'var'가 없으면 항상 'window' 객체에 속성을 동적으로 추가하게 됩니다.
var test = function(){ a = 'aa'; } test(); alert(window.a);//弹出'aa'
window 객체는 전역 객체이므로 기본적으로 생략 가능합니다.
다음 문단도 같은 효과가 있습니다.
var test = function(){ a = 'aa'; } test(); alert(a);//弹出'aa'
이렇다 보니 진지하게 생각하고 있는 학생들이라면 왜 암묵적으로 선언된 전역 변수는 삭제할 수 있는데, 명시적으로 선언된 전역 변수는 삭제할 수 없는 걸까요?
그 이유는 "delete는 구성 가능성이 false인 속성을 삭제할 수 없습니다"입니다. 변수 선언이나 함수 선언을 통해 생성된 전역 개체의 속성과 같은 일부 내장 개체의 속성은 구성할 수 없습니다.
delete Object.prototype; // false 不可删除,该属性是不可配置的 var a = 'aa'; delete window.a;//false 不可删除,该属性是不可配置的 function test(){}; delete window.test;//false 不可删除,该属性是不可配置的
그러면 'var'로 선언된 전역 변수는 실제로 'window' 객체에 구성할 수 없는 속성을 추가하는 반면, 'var' 없이 선언된 전역 변수는 실제로 구성할 수 없는 속성을 'window' 객체에 추가한다는 것을 이해하지 못하시나요? 'window' 개체에 구성 가능한 속성이 추가되었습니다.
위에서 창을 사용하는 경우 창은 다음과 같이 대체될 수 있습니다.
var test = function(){ a = 'aa'; } test(); alert(this.a);//弹出'aa'
이유는 제가 예전에 쓴 글을 확인해주세요'이것, 이것, 자바스크립트로 다시 토론해 보세요, 초포괄적'
다음은 자바스크립트의 var 키워드를 뽑아서 모두에게 따로 설명하는 것입니다.
변수를 정의할 때 Var 키워드를 사용해야 한다는 것을 알고 있습니다. Var 키워드를 사용할 때는 사용법에 주의해야 합니다.
다음 예제는 Var를 사용할 때와 사용하지 않을 때, 전역 변수와 지역 변수를 정의할 때 실행 결과가 다르다는 것을 잘 보여줍니다.
var var01 = 1; function funtest() { document.write(var01); var var01 = 0; }
결과는 다음과 같습니다: 정의되지 않음
var var01 = 1; function funtest() { document.write(var01); var01 = 0; }
결과는 1
var01 = 1; function funtest() { document.write(var01); var var01 = 0; }
결과는 다음과 같습니다: 정의되지 않음
var01 = 1; function funtest() { document.write(var01); var01 = 0; }
결과는 1
여기에서 JavaScript의 var에 대해 얼마나 알고 있는지 확인해 보세요. 이 글을 통해 모든 사람이 뭔가를 배울 수 있을 것이라고 믿습니다. javascript var에 대해 자세히 알아보려면 이 사이트에 계속 관심을 가져주세요. 감사합니다!