자바스크립트 연구 노트 2 - 변수_기본 지식

WBOY
풀어 주다: 2016-05-16 18:13:42
원래의
1191명이 탐색했습니다.
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가 출력됩니다.
위의 원리를 이해하고 다음 예를 살펴보겠습니다.


코드 복사


코드는 다음과 같습니다.
var x = "global" function f() { var x= 'f1'; function f2(){ x= 'f2' ;//여기서 좀 헷갈립니다. GLOBAL의 전역"
}
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 name = 'Jeffrey'; var lastName = 'Way'; doSomething() {...} console.log(name); // Jeffrey -- 또는 window.name 더 나은 작성 방법


코드 복사


코드는 다음과 같습니다.


var DudeNameSpace = { "DudeNameSpace" 개체 아래의 "지저분한 발자국"
2. 긴 변수 선언 목록이 있습니까? 변수를 너무 많이 쓰지 말고 쉼표를 사용하세요.




코드 복사

코드는 다음과 같습니다.


var someItem = '일부 문자열';
var anotherItem = '다른 문자열' var oneMoreItem = '하나 더 문자열';
더 나은 작성 방법
코드 복사 코드는 다음과 같습니다.

var someItem = '어떤 문자열',
anotherItem = '또 다른 문자열',
oneMoreItem = '하나 더 문자열'

자명합니다. 이것이 코드 속도를 높일지는 모르겠지만, 코드가 훨씬 더 깔끔해질 것입니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!