1.使用var聲明的變量,其作用域?yàn)樵撜Z(yǔ)句所在的函數(shù)內(nèi),且存在變量提升現(xiàn)象书闸。
2.使用let聲明的變量尼变,其作用域?yàn)樵撜Z(yǔ)句所在的代碼塊內(nèi),不存在變量提升浆劲。
3.使用const聲明的是一個(gè)只讀的常量,(不包括引用類(lèi)型嫌术,向數(shù)組哀澈,對(duì)象等)在后面出現(xiàn)的代碼中不能再修改該常量的值。(保護(hù)全局變量蛉威,以免受到污染)日丹,必須給一個(gè)初始化的值走哺。
比如:
const a = 100;
const = 10; //報(bào)錯(cuò)
const arr = [1,2];
arr.push(3); //arr = [1,2,3];
4.let,const在同一個(gè)作用域下不能重復(fù)定義相同的變量名稱(chēng):
比如:
var a = 10;
var a = 100; //后面的值覆蓋前面的值
// 但是
let a = 10;
let a = 100;
// 或者
const a = 10;
const a = 100;
就會(huì)報(bào)錯(cuò)