在Js中三種聲明變量的方式: var局劲、 let、const奶赠,建議使用優(yōu)先級(jí): const? > let > var
1. var定義變量鱼填,沒有塊的概念,可以跨快訪問车柠,不能跨函數(shù)訪問剔氏,不初始化會(huì)出現(xiàn)undefined塑猖,不會(huì)報(bào)錯(cuò)
2. let定義變量竹祷,只能在塊作用域里訪問,也不能跨函數(shù)訪問羊苟,對函數(shù)外部無影響塑陵。
3. const定義常量,只能在塊作用域里訪問蜡励,也不能跨函數(shù)訪問令花,使用時(shí)必須初始化(即必須賦值),而且不能修改
1.1 -?Es6中提出的let凉倚、const兼都。let完全可以替代var,因?yàn)閮烧哒Z義相同稽寒,而且let沒有副作用(var存在變量提升效果扮碧,let沒有)
if (true) {? ??
????console.log(x)? //?ReferenceError?? ? ?
????let x = 'hello'
}
把let換成var就不會(huì)報(bào)錯(cuò)了
1.2 - 在let和const之間,建議優(yōu)先使用const,尤其是在全局環(huán)境慎王,不應(yīng)該設(shè)置變量蚓土,只應(yīng)設(shè)置常量。
?? ??????原因:1.const可以提醒閱讀程序的人赖淤,這個(gè)是變量不應(yīng)該改變
? ? ? ? ? ? ? ? ? ? 2.const比較符合函數(shù)式編程思想蜀漆,運(yùn)算不改變值,只是新建值咱旱,而且這樣也有利于將來的分布式運(yùn)算
? ? ? ? ? ? ? ? ? ? 3.js編輯器會(huì)對const進(jìn)行優(yōu)化
? ? ? ? ? ? ? ? ? ? 所以多使用const确丢,有利于提高程序的運(yùn)行效率
? ?
? ? ? ?