天天看點

談談 var , let , const 幾種聲明變量方式的差別

多讀多寫多記錄,多學多練多思考。----------- Grapefruit.Banuit Gang(香柚幫)

關于聲明變量,我們有var , let , 和 const幾種方式,這次就來簡單說一下他們之間的差別所在:

var:

            通過一個簡單的小例子來看一下var ,

var a = 30;
if(true){
    var a = 50; 
    console.log(a)    //50
}
console.log(a)    //50
           

         js列印一個變量時,都是從下往上找的,通過例子可以看到兩次列印都是50,說明兩次列印所找到的都是if語句中的var,這說明var 的作用域是全局的,不管在哪都可以使用的。

let:

        同樣的方法可以看一下let

let a = 30;
if(true){
    let a = 50; 
    console.log(a)    //50
}
console.log(a)    //30
           

         例子可以看出,二次列印時他并沒有找到 if 語句中聲明的a變量,而是又繼續向上找的 if 外面聲明的a,由此可見let聲明的變量隻在作用域範圍内有效,出了作用域就找不到,可以看一下:隻要出了作用域就會報錯了

{
    let a = 30
}
console.log(a)   //報錯
           

const:

         const其實是聲明常量所用

const x = 10;
x = 100;

console.log(x)   //報錯
           

          const聲明常量是不可以更改的,更改就會報錯

          但是有一點需注意:那就是const聲明的數組是可以通過push等方法往裡面添加或删除數組的,但是不可更改類型,否則也會報錯:

const arr = [];

arr = "Green";
console.log(arr );   //報錯

arr .push("red");
arr .push("blue");
console.log(arr );   //正常列印

           

好了,就是這些了,希望能幫助一些朋友!!!