[JS]let、const、varの違い
7460 ワード
ES 6以前のjavascriptでは、変数を宣言するテーブルに
ES 6から出現する変数宣言キーワードlet,constの違いを整理する.
var
1. Hoisting
変数宣言と初期化ステップを最上位レベルに引き上げます.
JavaScriptでは、コードブロック(if、for、while、try/catchなど)が領域スキャンを作成します.ただし、varを使用して宣言された変数は
*Let、constも首を吊るって言った!
1.let,constのscope
すべてのコードブロック(if、for、while、try/catchなど)を領域スキャンと認定するブロックレベルスキャンに従う.
letは繰り返し宣言することはできません.再割り当てできます.
constを使用する変数は、中目宣言も再割り当てもできません.
例外として、オブジェクト(配列を含む)にはアドレス値があるため、オブジェクトの値をさらに削除できます.
またletとは異なり、宣言と割り当てを同時に行う必要があります.
var
が使用されていました.ES 6から出現する変数宣言キーワードlet,constの違いを整理する.
var
1. Hoisting
変数宣言と初期化ステップを最上位レベルに引き上げます.
console.log(apple) // => undefined, 함수의 선언 및 초기화가 호이스팅에의해 최상위로 끌어올려짐
var apple ="red"
2.関数レベルスキャンJavaScriptでは、コードブロック(if、for、while、try/catchなど)が領域スキャンを作成します.ただし、varを使用して宣言された変数は
함수 레벨 스코프만 지역 변수로 인정
のみであり、他のコードブロックではグローバルスキャンに従ってグローバル変数とみなされる.var fruit = 'apple';
function func() {
var fruit = 'banana';
return fruit;
}
console.log(func()); // => banana
console.log(fruit); // => apple
if (true) {
var fruit = 'peach'; //var는 if를 지역스코프로 보지 않기때문에 전역변수가 선언된다.
}
console.log(fruit); // => peach
3.繰り返し宣言と再割当var fruit = 'apple'
var fruit = 'banana'
console.log(fruit) //=> banana
fruit = peach
console.log(fruit) //=> peach
let, const*Let、constも首を吊るって言った!
1.let,constのscope
すべてのコードブロック(if、for、while、try/catchなど)を領域スキャンと認定するブロックレベルスキャンに従う.
let apple = 'red'
if (true) {
let apple = 'sweet'
console.log(apple) //=> sweet
}
console.log(apple) //=> red
2.letの宣言、割り当てletは繰り返し宣言することはできません.再割り当てできます.
let apple; //=> undefined, 변수 선언후 초기화가 진행된다. 선언과 할당을 동시에 해도 된다.
apple = 'sweet' // 값을 재할당 할 수 있다.
let apple = 'tree' //=> SyntaxError: Identifier 'a' has already been declared
3.constの宣言、割り当てconstを使用する変数は、中目宣言も再割り当てもできません.
例外として、オブジェクト(配列を含む)にはアドレス値があるため、オブジェクトの値をさらに削除できます.
またletとは異なり、宣言と割り当てを同時に行う必要があります.
const banana; // SyntaxError: Missing initializer in const declaration
const apple = 'red'
apple = 'sweet' // TypeError: Assignment to constant variable.
const arr = [1, 2]
arr = [1, 2, 3, 4] //TypeError: Assignment to constant variable. 재할당은 불가능!!
arr.push(3, 4) //배열의 주소값이 그대로일경우 수정가능
console.log(arr) //=> [1, 2, 3, 4]
Reference
この問題について([JS]let、const、varの違い), 我々は、より多くの情報をここで見つけました https://velog.io/@hinyc/JS-let-const-var-의-차이점テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol