本当の理解var,let,const
12058 ワード
本文はloving-catのブログに転載して、原文のリンク:https://blog.csdn.net/weixin_42878211/article/details/105325942
jsには変数を宣言する3つの方法var let constが存在するが,それらの違いの多くは区別できない.
varは関数役割ドメインのみであり、ブロック役割ドメインはなく、グローバル/ローカル変数(この関数でのみ有効) を宣言できます. varで定義された変数は関数間でアクセスできませんが、ブロック間でアクセスできます. varで定義された変数は初期化しないとundefinedが出力されますが、 はエラーが発生しません.は、定義を繰り返すことができ、後に定義されたものは、先に定義された を上書きする.
letはブロックレベルの役割ドメインであり、関数内部でlet定義を用いると、関数外部に影響を及ぼさない . letで定義された変数は、ブロックの役割ドメインでのみアクセスでき、ブロック間ではアクセスできません.さらに、関数間では にアクセスできません.変数宣言を繰り上げることはできません.そうしないと、 とエラーが発生します.定義を繰り返すことはできません.そうしないと、 とエラーが発生します.
forループにタイマーが入っている場合は**varとlet**の使用に注意
constで定義する変数は変更できず、初期化 を行う必要がある. constは一般的に定数を宣言するために使用され、宣言された定数は変更できません(読み取り専用属性).したがって、宣言と同時に を割り当てる必要があります. constもブロックレベルの役割ドメインであり、letと同様に、ブロックの役割ドメインにのみアクセスでき、一時的なデッドゾーンが存在し、変数宣言の早期は存在せず、 の繰り返し定義は許されない.
constで定義された定数は変更できません.演算子を使用するときは、++、--いずれもできません.1つの時間は自己増加し、1つの時間は自己減少し、自身は変化します.
jsには変数を宣言する3つの方法var let constが存在するが,それらの違いの多くは区別できない.
var
var aaa;
console.log(aaa); // undefined,
//-----------------------------------------
var a = 1; //
console.log(" a:"+a); // a: 1
function A(){
a=2;
console.log(" a:"+a); // a: 2
}
A();
console.log(" A ,a A :"+a); // A ,a A :2
//---------------------------------------------
var b=1;
var b=2;
console.log(b); //2,
let
let a =1;
console.log(" a:"+a); // 1
function A(){
let a = 2;
console.log(" a:"+a); //2
}
A();
console.log("A() ,let a "+a); //1
//---2-----
var b=1;
{
let b=2;
console.log(b); // 2
}
console.log(b); //1
//---3------
console.log(aaa);
let aaa=1;
// ,
//----4-------
let p = 1;
let p = 2;
console.log(p); // ,
forループにタイマーが入っている場合は**varとlet**の使用に注意
for(var i = 0;i<5;i++){
setTimeout(function(){
console.log(i)
},500)
}
// 5 5 5 5 5 , var ,for 5 i 5, , i 5
for(let i = 0;i<5;i++){
setTimeout(function(){
console.log(i)
},500)
}
// 0 1 2 3 4, let , , i
const
const a =1; //
console.log(a--) //
console.log(a-1) // 0
const b; //
//-----------------
const c=1;
const c=1;
//
let a;
console.log(a) //undefinde
a = 2;
a = 3;
console.log(a) //3
//let , ,
constで定義された定数は変更できません.演算子を使用するときは、++、--いずれもできません.1つの時間は自己増加し、1つの時間は自己減少し、自身は変化します.