1. Javascript 변수 선언에 대하여
Javascript에서는
var a=1
변수를 선언하거나 다음 두 표현식을 직접 선언할 수 있습니다.
a=1; > 차이점이 있습니다.
하나는 현재 범위의 로컬 변수이고 다른 하나는 현재 범위의 전역 변수입니다.
Javascript 언어의 특별한 점은 전역 변수를 내부에서 직접 읽을 수 있다는 것입니다. 기능.
var n=999; f1() {
alert(n);
}
f1(); // 999
반면에 함수 내의 지역 변수는 자연스럽게 읽을 수 없습니다. 함수 외부.
function f1(){
var n=999 ;
}
alert(n); // 오류
2.
자바스크립트 변수 범위 체인
var x='000 '
document.writeln(x) // '000' 가져오기
a();
function a(){
var x='aaa '
function b(){
document.writeln(x);
var x='bbb ';
document.writeln(x); //bbb
}
b()
document.writeln(x); }
//결과는 다음과 같습니다: 000 undefound bbb aaa
원칙:
변수를 사용할 때는 먼저 펑션 블록에서 찾습니다(권한 있는 호출 개체에 의해 설명됨). 가이드),
찾으면 찾을 때까지 상위 펑션블록부터 검색합니다.
최상위 코드까지 정의를 찾지 못한 경우(var x=' 위치 참조) 000';), 코드는 정의되지 않은 오류를 보고합니다.
1. 실행 순서대로 x '000'을 출력합니다(문제 없습니다).
2. 그런 다음 a()를 실행합니다.
3. a()에서 b()를 실행합니다. .b()는 x를 출력해야 합니다. 함수 본문(범위)에 x 정의가 있지만 값이 할당되지 않았으므로 출력이 정의되지 않습니다.
5. x, x에 값이 할당되었으므로 bbb가 출력됩니다.
위의 원리를 이해하고 다음 예를 살펴보겠습니다.
코드 복사
코드는 다음과 같습니다.
}
f2();
alert( x) //return "f2"
}
f();
alert(x); //return "global", 다음으로 재할당되지 않음: f2
//결과가 나타납니다. 각각: f2 global f2 global
설명:
먼저 f()에서 f2()를 실행하고,
f2()는 내부 함수에 대한 범위를 생성하므로 x='f2' 전역 x가 아닌 f()의 x 값을 수정합니다.
alert(x)는 'f2'이고, Alert(window.x)는 'global'입니다.
그런 다음 범위를 실행합니다. of x는 전역, 즉 '전역'입니다
3. 초보자를 위한 제안
1. 전역 변수 줄이기(해결 방법: 변수를 객체로 캡슐화)
인용문:
“속성 한 사람에 대한 전 세계의 모든 지저분한 발자국은 다른 애플리케이션, 가젯 또는 JS 라이브러리와의 상호 운용성 위험을 크게 줄일 수 있습니다. ”
– Douglas Crockford
코드 복사 코드는 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.
var DudeNameSpace = {
"DudeNameSpace" 개체 아래의 "지저분한 발자국"
2. 긴 변수 선언 목록이 있습니까? 변수를 너무 많이 쓰지 말고 쉼표를 사용하세요.
코드 복사
코드는 다음과 같습니다.
var someItem = '일부 문자열';
var anotherItem = '다른 문자열'
var oneMoreItem = '하나 더 문자열';
더 나은 작성 방법
var someItem = '어떤 문자열',
anotherItem = '또 다른 문자열',
oneMoreItem = '하나 더 문자열'
자명합니다. 이것이 코드 속도를 높일지는 모르겠지만, 코드가 훨씬 더 깔끔해질 것입니다.