JS에서 변수 VAR 연산자의 정의를 사용하지만, VAR은 많은 단점을 가진다 :없는 블록 레벨 범위, 변형 및 한정 할 수없는 등, 변수 선언을 반복 할 수있다.
@ 단점 : 변수를 선언이 반복 될 수 VAR의 A = 1 , VAR의 A = 2 ; CONSOLE.LOG (A) // 2 // 2 단점은 : 그 변형 제한 할 수 없다 @ 단점 3 없음 블록 레벨 범위 { VAR의 B = 12이다 ; } CONSOLE.LOG (B) // 12 인
ES6 새로운 CONST 당신이 이러한 문제를 해결 할 수 있습니다. 이제 살펴보고 그것을 CONST를 할 수 있습니다.
- CONST을하자 문을 반복 할 수 없다
하자 = 1 ; 하자 = 2 ; CONSOLE.LOG (b); // 구문 에러 : 식별자 'A'이미 선언 된
- 선언 CONST가 일정하고 수정할 수 없습니다 수 있도록 문은 변수 값 변경 될 수 있습니다
CONST에서 A = 1 ; = 2 ; CONSOLE.LOG (a); // 형식 오류 : 상수 변수에 할당.
- 블록 레벨 범위가 있습니다
VAR의 A = []; 위한 ( VAR I = 0; I <5; 내가 ++ ) { A [I] = 함수 () { CONSOLE.LOG (I); } } A [ 2] (); // 5
위의 예에서, 가변 VAR의 전 세계적인 범위 만 글로벌 I, 각 사이클 난 + 1 사이클 종료 후, 5 것이다 변수의 값이 정의된다. 어레이 (A)의 모든 구성원, A [0] ... 상기 최종 출력이되도록 5 [4] i가 동일한 내부이다.
하자 = []; 위한 (I = 0을 보자; I <5; 내가 ++ ) { A [I] = 함수 () { CONSOLE.LOG (Ⅰ); } } A [ 2] (); // 2
이러한 예에서, I은 효율적인 블록 레벨 범위에 있도록하여 선언된다. 어레이의 각 구성원은 자신의 I를 갖는다.
또한,이 순환 루프 변수의 일부가 상위 범위 설정에 대해, 루프 몸체가 별도의 서브 범위 인 것을 알 수있다.
위한 (I = 0을 보자; I <2; i가 ++ ) { I하자 = 12 ; CONSOLE.LOG (I); } // 12 // 12