let、var、count

let

let 表示申明變量,使用let聲明變量的語法和使用var聲明的語法是一樣的。

let與var的區(qū)別

作用域不同:用 let 聲明的變量具有塊級作用域,只能在聲明的塊中訪問,在塊外面無法訪問; var定義的變量是函數(shù)作用域[局部的],但在if、for等定義的變量是全局的。

同一個變量聲明的次數(shù):在同一個作用域中同一個變量let只能聲明一次, 而var可以多次聲明;因此, let聲明的變量可以避免全局變星被污染。

是否有變量預解析: var聲明的變量存在變量提升,而let則沒有變量提升,let聲明的變量要先定義后使用。

let有暫時性死區(qū): let聲明的變量要先定義后使用。(// Cannot access i' before initialization);
var不會報錯,而是打印undefined。

變量的綁定歸屬: let聲明的變量不會綁定到頂層對象,即在全局作用域中用let聲明的變量,使用window.變量名不會生效

count

const是用來定義常量的。常量就是在整個程序運行期間其值是固定不變的。

  1. 它的特性與let一樣,只能在塊級作用域中有效,不能重復聲明,不存在變量提升,不會成為window的屬性,但是它一旦聲明就不能再修改值
  2. 如果聲明基本數(shù)據(jù)類型,聲明后是不能修改的,但是如果聲明引用數(shù)據(jù)類型,則可以修改其屬性的值
    const swk = {
            name: '孫悟空',
            age: 600
        }
        swk.name = '美猴王'
    console.log(swk.name)//美猴王 修改name屬性的值成功
  1. 在let和const聲明前的這段區(qū)域稱之為暫存性死區(qū)
  2. 暫時性死區(qū):暫時性死區(qū)是ES6語法引入let和const后才引入的,是指在一個塊級作用域中,存在一個死區(qū),開始于函數(shù)的開頭,結束于變量聲明的那一行,在這個死區(qū)內(nèi),無法訪問let或const聲明的變量。
  3. 使用let和const聲明的變量和常量不再是window的屬性。 也就是說通過window.a是無法訪問到的。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容