<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術干貨  >  let和const的區別?

    let和const的區別?

    來源:千鋒教育
    發布人:xqq
    時間: 2023-10-13 18:47:36

    一、let和const的區別

    Let

    let現在已經成為變量聲明的優選。這并不奇怪,因為它是對var聲明的改進。它也解決了我們剛剛介紹的var問題。讓我們考慮一下為什么會這樣。

    let 是塊級作用域,塊是由 {} 界定的代碼塊,大括號中有一個塊。大括號內的任何內容都包含在一個塊級作用域中。

    因此,在帶有let的塊中聲明的變量僅可在該塊中使用。

    let greeting = ‘say Hi’;

    let times = 4;

    if (times > 3) {

        let hello = ‘say Hello instead’;

        console.log(hello); // say Hello instead”

    }

    console.log(hello); // hello is not defined

    我們看到在其代碼塊(定義它的花括號)之外使用hello會返回錯誤。這是因為let變量是塊范圍的.

    let 可以被修改但是不能被重新聲明,就像var一樣,用let聲明的變量可以在其范圍內被修改。但與var不同的是,let變量無法在其作用域內被重新聲明。

    Const

    用const聲明的變量保持常量值。 const聲明與let聲明有一些相似之處

    const 聲明的變量在塊級作用域內,像let聲明一樣,const聲明只能在聲明它們的塊級作用域中訪問

    const 不能被修改并且不能被重新聲明,這意味著用const聲明的變量的值保持不變。不能修改或重新聲明。因此,如果我們使用const聲明變量,那么我們將無法做到這一點:

    const greeting = ‘say Hi’;

    greeting = ‘say Hello instead’; // error: Assignment to constant variable.

    或者這個這樣:

    const greeting = ‘say Hi’;

    const greeting = ‘say Hello instead’; // error: Identifier ‘greeting’ has already been declared

    因此,每個const聲明都必須在聲明時進行初始化。

    當用const聲明對象時,這種行為卻有所不同。雖然不能更新const對象,但是可以更新該對象的屬性。 因此,如果我們聲明一個const對象為

    const greeting = {

        message: ‘say Hi’,

        times: 4,

    };

    同樣不能像下面這樣做:

    const greeting = {

        words: ‘Hello’,

        number: ‘five’,

    }; // error:  Assignment to constant variable.

    但我們可以這樣做:

    greeting.message = ‘say Hello instead’;

    這將更新greeting.message的值,而不會返回錯誤。

    延伸閱讀:

    二、用 const 還是用 let

    ES6 里新增了兩種聲明變量的方式,let 和 const,加上原來的 var,一共就有三種方式來聲明變量了。那到底該用哪個呢?關于“盡可能不用 var” 這一點,大家應該沒有什么意見分歧(其實還是有少數人不這么想的),關于“是用 let 還是用 const”,社區里主要有兩種不同的觀點:

    1. 默認全用 let,只在符合一些寫代碼的人的主觀判斷條件的時候用 const,下面舉個這樣的“主觀判斷條件”的例子(實際代碼中用到 const 的幾率大概會是 0.1%):

    你能 100% 確定該變量永遠不會在其它的代碼行里被重新賦值,但是該變量的初始值有可能在未來會被調整(有點配置項的意思),且

    該變量的初始值是個數字字面量(或者多個數字組成的數學運算表達式)、字符串字面量、布爾字面量、數組字面量、對象字面量、正則字面量、symbol 字面量”(打引號是因為 symbol 其實沒有字面量),且

    該變量是個全局變量,或者是模塊內的全局變量

    2. 默認全用 const,只有該變量需要被重新賦值才用 let (實際代碼中用到 const 的幾率大概會是 95%),和上面舉的三個主觀判斷條件對比一下差異:

    不能 100% 確定該變量永遠不會被重新賦值(可能只是現在是沒被重新賦值,說不定未來會),或者該變量的初始值不是字面量,比如說是個函數調用表達式,或者該變量是個局部變量

    名列前茅種用法是非常主觀的,比如你用 const 的判斷條件有可能就和我上面舉的不一樣,比如你也許覺得局部變量也可以用 const ?或者你覺的數組和對象是可變的值,怎么能用 const 呢?因為很主觀,所以一個團隊的代碼風格很難達成一致,甚至只有你一個人維護的代碼,const 的用法在不同的時間內也沒有統一的規律,因為可能連你自己都沒有明確的想過:“什么時候我應該用 const”,說白了就是“看心情”。而第二種用法是非常客觀的,簡單直接,沒有含糊不清的地方,如果采用這種用法,至少團隊代碼風格的統一是不成問題的。

    以上就是關于let和const的區別的內容希望對大家有幫助。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    怎么自定義Visual Studio代碼折疊識別的區域?

    2023-10-13

    hcip和hcnp有什么區別?

    2023-10-13

    layui和vue的區別?

    2023-10-13

    最新文章NEW

    cs和bs區別?

    2023-10-13

    DOF和HP有什么區別?

    2023-10-13

    hold和host的區別?

    2023-10-13

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>