<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【ES6 教程】第一章 新的ES6語(yǔ)法03—使用const 關(guān)鍵字定義常量

          共 2406字,需瀏覽 5分鐘

           ·

          2022-03-07 23:15

          英文 | https://www.javascripttutorial.net

          翻譯 | 楊小愛


          在本教程中,我們將學(xué)習(xí)如何使用 JavaScript const 關(guān)鍵字定義常量。

          JavaScript const 關(guān)鍵字簡(jiǎn)介

          ES6 提供了一種使用 const 關(guān)鍵字聲明常量的新方法。const 關(guān)鍵字創(chuàng)建對(duì)值的只讀引用。

          const CONSTANT_NAME = value;

          按照慣例,常量標(biāo)識(shí)符是大寫的。

          與 let 關(guān)鍵字一樣, const 關(guān)鍵字聲明塊作用域變量。但是,由 const 關(guān)鍵字聲明的塊范圍變量不能重新分配。

          let 關(guān)鍵字聲明的變量是可變的。這意味著我們可以隨時(shí)更改它們的值,如以下示例所示:

          let a = 10;a = 20;a = a + 5;console.log(a); // 25

          但是,由 const 關(guān)鍵字創(chuàng)建的變量是“不可變的”。換句話說(shuō),我們不能將它們重新分配給不同的值。

          如果我們嘗試重新分配由 const 關(guān)鍵字聲明的變量,我們將收到如下所示的 TypeError:

          const RATE = 0.1;RATE = 0.2; // TypeError

          與 let 關(guān)鍵字不同,我們需要將值初始化為 const 關(guān)鍵字聲明的變量。

          以下示例由于缺少 const 變量聲明中的初始化程序而導(dǎo)致 SyntaxError:

          const RED; // SyntaxError

          JavaScript 常量和對(duì)象

          const 關(guān)鍵字確保它創(chuàng)建的變量是只讀的。但是,這并不意味著 const 變量引用的實(shí)際值是不可變的。例如:

          const person = { age: 20 };person.age = 30; // OKconsole.log(person.age); // 30

          即使 person 變量是一個(gè)常量,我們也可以更改其屬性的值。

          但是,我們不能像這樣為 person 常量重新分配不同的值:

          person = { age: 40 }; // TypeError

          如果我們希望 person 對(duì)象的值是不可變的,則必須使用 Object.freeze() 方法將其凍結(jié):

          const person = Object.freeze({age: 20});person.age = 30; // TypeError

          注意 Object.freeze() 是淺的,這意味著它可以凍結(jié)對(duì)象的屬性,而不是屬性引用的對(duì)象。

          例如,company 對(duì)象是不變的并且是凍結(jié)的。

          const company = Object.freeze({    name: 'ABC corp',    address: {        street: 'North 1st street',        city: 'San Jose',        state: 'CA',        zipcode: 95134    }});

          但是 company.address 對(duì)象不是不可變的,我們可以向 company.address 對(duì)象添加一個(gè)新屬性,如下所示:

          company.address.country = 'USA'; // OK

          JavaScript 常量和數(shù)組

          示例如下:

          const colors = ['red'];colors.push('green');console.log(colors); // ["red", "green"]
          colors.pop();colors.pop();console.log(colors); // []
          colors = []; // TypeError

          在此示例中,我們使用 const 關(guān)鍵字聲明了一個(gè)包含一個(gè)元素的數(shù)組 colors。然后,我們可以通過(guò)添加green來(lái)更改數(shù)組的元素。但是,我們不能將數(shù)組colors重新分配給另一個(gè)數(shù)組。

          for 循環(huán)中的 JavaScript const

          ES6 提供了一個(gè)名為 for...of 的新結(jié)構(gòu),它允許我們創(chuàng)建一個(gè)循環(huán)遍歷可迭代對(duì)象,例如數(shù)組、映射和集合。

          let scores = [75, 80, 95];
          for (let score of scores) { console.log(score);}

          如果你不打算在循環(huán)中修改 score 變量,你可以使用 const 關(guān)鍵字來(lái)代替:

          let scores = [75, 80, 95];for (const score of scores) {    console.log(score);}

          在此示例中,for...of 在每次循環(huán)迭代中為 const 關(guān)鍵字創(chuàng)建一個(gè)新綁定。換句話說(shuō),每次迭代都會(huì)創(chuàng)建一個(gè)新的分?jǐn)?shù)常數(shù)score。

          請(qǐng)注意, const 在命令式 for 循環(huán)中不起作用。嘗試使用 const 關(guān)鍵字在命令式 for 循環(huán)中聲明變量將導(dǎo)致 TypeError:

          for (const i = 0; i < scores.length; i++) { // TypeError    console.log(scores[i]);}

          原因是,聲明只在循環(huán)體開始之前被評(píng)估一次。

          總結(jié)

          • const 關(guān)鍵字創(chuàng)建對(duì)值的只讀引用。只讀引用不能重新分配,但值可以更改。

          • const 關(guān)鍵字聲明的變量是阻塞范圍的,不能重新聲明。

          推薦閱讀

          【ES6 教程】第一章 新的ES6語(yǔ)法01—let:使用let關(guān)鍵字聲明塊范圍的變量

          【ES6 教程】第一章 新的ES6語(yǔ)法02—var 和 let 的區(qū)別



          學(xué)習(xí)更多技能

          請(qǐng)點(diǎn)擊下方公眾號(hào)


          瀏覽 38
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  美女骚逼丝袜野战视频 | 国产性爱自拍视频 | 久久久久久三级片 | 人人操人人妻人人干 | 99re3|