1. 程式人生 > >var,let,const聲明變量?

var,let,const聲明變量?

作用域 聲明 重新 不可 fine 的區別 支持 基本 必須

var 與 let 的區別?

1.var支持變量預檢測,let不支持

     console.log(a); // undefined 程序不會報錯
    var a = 1;
    console.log(b); //程序報錯  b is not defined
    let b = 2;
2.let 不支持重復聲明

var a = 1;
    var a = 10;
    console.log(a); // 10

    let b = 2;
    let b = 200;
    console.log(b); //程序報錯 Identifier ‘b‘ has already been declared  變量已經被聲明了
3.let 支持塊級作用域

{
    var a = 100;
}
    console.log(a); // 100
{
    let b = 200;
}
    console.log(b); //程序報錯  b is not defined 

const 聲明常量,聲明後不可被重新賦值。

    const c = 3.14;
    const c = 3.15; ////程序報錯 Identifier ‘c‘ has already been declared  變量已經被聲明了
    console.log(c);

const 與 let 基本一致,但是也有區別。

1. const在聲明的時候必須給初始化值,否則會報錯

2. const聲明的常量不可被再次修改

const 在聲明常量的時候,有些情況是可以修改的

    const obj = {};
    obj.name = ‘我是1‘;
    console.log(obj);
    obj.name = ‘我是2‘;
    console.log(obj);

在這裏不能修改obj這個對象,但是可以對對象裏面的值進行修改。

var,let,const聲明變量?