이 글의 예시에서는 자바스크립트 변수 선언 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
js에서 변수를 사용하기 전에 변수를 선언해야 합니다. 변수는 var 키워드를 사용하여 선언됩니다.
var 선언문에 변수의 초기값을 지정하지 않으면 변수값이 정의되지 않습니다.
변수를 선언할 때 변수 유형을 지정할 필요가 없습니다. JS 변수는 모든 데이터 유형이 될 수 있습니다.
var 문을 사용하여 변수를 반복적으로 선언하는 것은 합법적이며 해롭지 않습니다. 반복되는 선언에 이니셜라이저가 있으면 단순 대입문과 다르지 않습니다.
선언되지 않은 변수를 읽으려고 하면 js에서 오류를 보고합니다. ECMAScript5 엄격 모드에서 선언되지 않은 변수에 값을 할당하면 오류가 보고됩니다. 그러나 역사적으로 비엄격 모드에서 선언되지 않은 변수에 값을 할당하면 js는 실제로 동일한 이름의 속성을 생성합니다. 전역 객체이고, 제대로 선언된 전역 변수처럼 작동하는 것 같습니다. 이는 전역 변수를 선언하지 않고도 벗어날 수 있다는 의미이지만 이는 많은 버그를 유발할 수 있는 나쁜 습관이므로 항상 var를 사용하여 변수를 선언하는 것이 좋습니다.
함수 본문에서 동일한 이름을 가진 지역 변수는 전역 변수를 덮어씁니다.
var 문을 작성하지 않고도 전역 범위에서 코드를 작성할 수 있지만, 지역 변수를 선언할 때는 반드시 var 문을 사용해야 합니다.
scope = "global"; function foo(){ scope="local" //fk!我们刚刚修改了全局变量!!! }
C와 같은 프로그래밍 언어에서는 중괄호 안의 각 코드 조각에 고유한 범위가 있으며 변수가 선언된 코드 섹션 외부에는 표시되지 않습니다. js에서는 블록 수준 범위이지만 함수 범위가 대신 사용됩니다. 변수는 변수가 선언된 함수 본문과 이 함수 본문이 중첩된 모든 함수 본문에 정의됩니다(내부 중첩 또는 외부 중첩 여부)
js의 함수 범위는 함수 내에서 선언된 모든 변수가 함수 본문 내에서 항상 표시된다는 것을 의미합니다. 즉, 변수가 선언되기 전에도 사용할 수 있다는 의미입니다. js의 이 기능을 비공식적으로 선언 호이스팅이라고 합니다. 즉, js 함수에서 선언된 모든 변수(할당되지 않음)는 함수 본문의 맨 위로 "고급"됩니다.
var scope = "global"; function f(){ console.log(scope); //输出"undefined"而不是"global" var scope = "local"; //变量在这里赋初始值,但变量在函数体内任何地方均是有定义的 console.log(scope); //输出"local"
위 코드는 다음과 같습니다.
function f(){ var scope; console.log(scope); scope = "local"; console.log(scope); }
js 전역 변수를 선언하면 실제로 전역 개체의 속성을 정의합니다.
var로 변수를 선언하면 생성된 속성은 구성할 수 없습니다. 즉, 삭제 연산자로 삭제할 수 없습니다. 그러나 엄격 모드를 사용하지 않고 선언되지 않은 변수에 값을 할당하면 js는 자동으로 전역 변수를 생성합니다. 이러한 방식으로 생성된 변수는 전역 개체의 일반적으로 구성 가능한 속성이며 삭제할 수 있습니다.
var x = 1; y = 2; this.z = 3; //同上 delete x; //返回false,无法删除变量 delete y; //返回true,变量被删除 delete this.z //同上
이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.