3 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
您的問(wèn)題有兩個(gè)方面:使用的技術(shù)方面是什么,const
而不是var
與人類相關(guān)的方面是什么。
技術(shù)差異很大。在編譯語(yǔ)言中,常量將在編譯時(shí)被替換,并且它的使用將允許其他優(yōu)化(如死代碼刪除)以進(jìn)一步提高代碼的運(yùn)行時(shí)效率。最近(松散使用的術(shù)語(yǔ))JavaScript引擎實(shí)際上編譯JS代碼以獲得更好的性能,因此使用const關(guān)鍵字將告知它們上述優(yōu)化是可能的并且應(yīng)該完成。這導(dǎo)致更好的性能。
與人類相關(guān)的方面是關(guān)于關(guān)鍵字的語(yǔ)義。變量是包含預(yù)期會(huì)更改的信息的數(shù)據(jù)結(jié)構(gòu)。常量是包含永不改變的信息的數(shù)據(jù)結(jié)構(gòu)。如果有錯(cuò)誤的余地,var
應(yīng)始終使用。但是,并非所有在程序生命周期中永遠(yuǎn)不會(huì)更改的信息都需要聲明const
。如果在不同情況下信息應(yīng)該更改,請(qǐng)使用var
以指示即使實(shí)際更改未出現(xiàn)在您的代碼中。

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
var:聲明一個(gè)變量,值初始化可選。
let:使用塊作用域聲明局部變量。
const:聲明一個(gè)只讀的命名常量。
例如:
var a;
a = 1;
a = 2;//re-initialize possible
var a = 3;//re-declare
console.log(a);//3
let b;
b = 5;
b = 6;//re-initiliaze possible
// let b = 7; //re-declare not possible
console.log(b);
// const c;
// c = 9; //initialization and declaration at same place
const c = 9;
// const c = 9;// re-declare and initialization is not possible
console.log(c);//9
// NOTE: Constants can be declared with uppercase or lowercase, but a common
// convention is to use all-uppercase letters.
添加回答
舉報(bào)