ES6 선언 변수
ES6는하자 및 변수를 정의하는 CONST 키워드를 추가 :
var
: 및 ES5 ES6 의미에서, 전역 변수 (가변 단편)을 정의하는데 사용될 수있다let
다음 대안 적으로, (정의 같은 범위를 반복 할 수 없다)하게, 로컬 변수를 정의const
: 정의 상수 (나중에 수정 될 수없는 정의 됨)
VAR : 전역 변수
// 全局作用域
{
// 局部作用域
var x = 1;
}
console.log(x); // ?
로컬 변수 범위뿐만 출력 문에서 전역 변수에, 로컬 변수로 선언 X, 이번에는 출력이 정의보다는 1
// 全局作用域
var x = 1;
{
// 局部作用域
var x = 2;
}
console.log(x); // ?
그런 다음, 출력 (2)이고, X의 VAR 글로벌 변수로 선언 때문에 간단한 이유는
요약 : VAR는 전역 변수를 오염시킬 것이다, 전역 변수가 될 것이다 변수를 선언하는 키워드
상단의 위로 목차
하자 지역 변수
// 全局作用域
var x = 1;
{
// 局部作用域
let x = 2;
}
console.log(x); // ?
그리고 출력은하자의 로컬 변수를 선언하기 때문에, 로컬 범위에서만 유효, 전역 변수 X에 영향을 미치지 않습니다, 1
// 全局作用域
var x = 1;
{
// 局部作用域
let x = 2;
}
console.log(x); // ?
// 全局作用域
var x = 1;
{
console.log(x) // Cannot access 'x' before initialization
// 局部作用域
let x = 2;
}
얼굴 질문 : 다음의 출력은 무엇입니까? 0,1,2,3,4 ... buttons.length를 출력하는 방법
var buttons = document.getElementsByTagName("button");
for(var i = 0;i < buttons.length;i++){
buttons[i].onclick = function(){
console.log(i);
}
}
인쇄 buttons.length 시간 buttons.length, 솔루션
var buttons = document.getElementsByTagName("button");
for(var i = 0;i < buttons.length;i++){
(function(i){
buttons[i].onclick = function(){
console.log(i);
}
})(i);
}
var buttons = document.getElementsByTagName("button");
for(let i = 0;i < buttons.length;i++){
buttons[i].onclick = function(){
console.log(i);
}
}
- 변수는 전역 변수가 오염 발생하지 않습니다 문 창에 매달려되지하자
- 블록 레벨의 범위를 {} 추가, 이전에는 기능 범위, 글로벌 범위
- 하자 문은 반복 할 수 없습니다
- 사전에는 문을주지 (만 효과 사람들이 볼 수 사실, 앞서 임시 데드 존의 사전에 문이있다 : 초기화 이전에 액세스 할 수없는 'X') 인터뷰 포인트
상단의 위로 목차
CONST : 정수
// 全局作用域
const x = 1;
{
// 局部作用域
const x = 2;
}
console.log(x) // 1
// 全局作用域
const x = 1;
{
console.log(x) // Uncaught ReferenceError: Cannot access 'x' before initialization
// 局部作用域
const x = 2;
}
// 全局作用域
const x = 1;
{
console.log(x) // Uncaught TypeError: Assignment to constant variable.
const x = 2;
}
- CONST 변수 선언은 전역 변수 오염 발생하지 않습니다, 창에 끊지 않습니다
- CONST는 성명을 반복 할 수 없습니다
- 사전에 아무 문에서 const 없습니다 (단 효과 사람들이 볼 수 사실, 앞서 임시 데드 존의 사전에 문이있다 : 초기화 이전에 액세스 할 수없는 'NUM') 인터뷰 포인트
- const를 수정할 수 없습니다, 메모리 주소 공간을 변경할 수 없습니다
- const를 선언 한 번만 할당을 완료해야하며, 후자는 저장 공간의 주소를 변경할 수 없습니다
- const를 만들 사용할 수 있습니다
- CONST, 당신은하자로 사용할 수 없습니다. 상수 효율은 변수보다 높다
상단의 위로 목차