Var, let, const 및 그 사이의 모든 것
9738 단어 javascriptvariables
VAR은 2015년 6월에 ES6이 나올 때까지 오랫동안 선언의 대상이었습니다. 새로 추가된 것 중 하나는 let과 const였습니다.
첫 번째 주요 차이점은 이러한 변수의 범위에서 발생합니다.
범위 - 변수의 접근성을 결정합니다.
Var는 전역 및 함수 범위를 갖도록 선언할 수 있습니다.
var intro = "hello";// available globally
function end2020pls (){
var outro = "bye"; // only available here
}
console.log(intro) // works
console.log(outro) // error outro not defined
Let은 블록 범위 내에서 선언될 수 있습니다.
function end2020pls (){
let newintro = "say Hi";
console.log(newintro); // say Hi
}
console.log(newintro)// error newintro not defined
let intro = "hello";// outside
function end2020pls(){
let intro = "not today";// inside
console.log(intro); // not today
}
console.log(intro); // hello
Const는 블록 범위 내에서 선언될 수 있습니다.
function end2020pls(){
const newoutro = "see you later, alligator";
console.log(newoutro);// see you later, alligator
}
console.log(newoutro);// error newoutro is not defined
업데이트 및 재선언
Var를 업데이트하고 다시 선언할 수 있습니다.
var intro = "hello";
var intro = "goodbye"; // works
intro = "suh dude"; // works
Let은 업데이트할 수 있지만 다시 선언할 수 없습니다.
let intro = "hello";
let intro = "goodbye"; // error intro has already been declared
Const 업데이트하거나 다시 선언할 수 없습니다.
const intro = "hello";
intro = "yo"; // error Assignment to constant variable
const intro = "yo"; // error intro has already been declared
Const로 선언된 개체는 업데이트하거나 속성을 다시 선언할 수 없습니다.
const person = {
name: "bob";,
age: "99";
}
person.age = 67; //works
호이스팅 - 변수 및 함수 선언이 코드 실행의 맨 위로 이동되는 자바스크립트 메커니즘
Var가 호이스트되지만 정의되지 않음
그래서 이거
console.log(intro);
var intro = "hello";
실제로
var intro;
console.log(intro); // intro is undefined
intro = "hello";
Let은 호이스팅되지만 초기화되지는 않습니다.
function end2020pls(){
console.log(x)//error ReferenceError x is not defined
let x = 2;
}
Const는 호이스팅되지만 초기화되지는 않습니다.
function end2020pls(){
console.log(x) // error ReferenceError x is not defined
const x = 2;
}
지금은 여기까지입니다. 누락된 항목이 있으면 언제든지 문의해 주세요. ;)
Reference
이 문제에 관하여(Var, let, const 및 그 사이의 모든 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gurjotsidhu/var-let-const-and-everything-in-between-40j3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)