ES2015:最新版本的 JavaScript


ES2015,也稱為 ECMAScript 6,是 JavaScript 的最新版本,於 2015 年 6 月正式釋出。它為該語言帶來了許多新功能和改進,使編寫更高效、更易維護的程式碼變得更容易。在本教程中,我們將瞭解 ES2015 中引入的一些最重要的更改和新增功能,以及如何使用它們來編寫更好的 JavaScript。

新功能:Let 和 Const 宣告

ES2015 引入了兩種宣告變數的新方法:letconst。let 關鍵字用於宣告以後可以在程式碼中重新分配的變數,而 const 關鍵字用於宣告初始化後無法重新分配的變數。

使用 letconst 相比傳統的 var 關鍵字的主要優勢之一是它們是塊級作用域,而不是函式級作用域。這意味著用 letconst 宣告的變數僅在其宣告的塊內可訪問。

語法

在 JavaScript 中使用 let 關鍵字宣告變數的語法如下:

let variableName = value;

使用 const 關鍵字宣告變數的語法類似,但使用 const 關鍵字代替 let:

const variableName = value;

示例

以下是如何使用 let 和 const 的示例:

<html>
<body>
   <p id="print"></p>
   <p id="print1"></p>
   <p id="print2"></p>
   <script>
      // Example of let variable
      let x = 5;
      x = 6; // valid
      {
         let x = 7;

         document.getElementById("print").innerHTML = x; // 7
      }
      document.getElementById("print1").innerHTML = x; // 6
      
      // Declare a constant with `const`
      const numStars = 100;
      
      // Attempting to reassign a constant throws an error
      try {
         numStars = 50;
      } catch (err) {
         document.getElementById("print2").innerHTML = err;
      }
   </script>
</body>
</html> 

這有助於防止意外的變數名衝突,並使您的程式碼更易於理解和推理。

新功能:箭頭函式

ES2015 的另一個重要新功能是引入了箭頭函式。箭頭函式是定義函式的簡寫表示法。它使用 => 運算子定義,並且與傳統的函式表示式和宣告相比具有一些優勢。

語法

箭頭函式的基本語法如下:

(parameters) => { statements }

箭頭函式具有更簡潔的語法,並且沒有自己的 this 繫結,這有助於防止 this 設定為錯誤值的問題。

<html>
<body>
   <p id="print"></p>
   <script>

      // Arrow function syntax
      let add = (a, b) => {
         return a + b;
      };

      document.getElementById("print").innerHTML = add(2,3);
   </script>
</body>
</html>

新功能:模板字面量

ES2015 引入了一種建立字串的新方法,稱為模板字面量。模板字面量使用反引號 (`) 代替引號 (' ' 或 " "),並允許您透過將表示式括在 `${}` 中來包含字串內的表示式。這可以使構建包含動態資料的字串變得更容易。

示例

<html>
<head>
   <title>Example</title>
</head>
<body>
   <p id="demo"></p>
   <script>
      let name = 'John';
      let age = 30;

      // using computed property names
      let person = {
         ['first' + 'Name']: name,
         ['age' + (age > 18 ? 'Old' : 'Young')]: age,
         greet() {
               
            document.getElementById("demo").innerHTML= `Hello, my name is ${this.firstName} and I am ${this.ageOld} years old.`
         }
      };

      person.greet(); // logs "Hello, my name is John and I am 30 years old."
   </script>
</body>
</html>

新功能:增強的物件字面量

ES2015 還對物件字面量進行了一些增強,使建立和使用物件變得更容易。

語法

let property1 = "value1",
   property2 = "value2";
let obj = {
   property1,
   property2,
   [property3]: "value3"
}

一些關鍵功能包括:

示例

屬性簡寫 - 當變數與屬性具有相同的名稱時,您可以使用簡寫來分配其值。

<html>
<body>
   <p id="print"></p>
   <script>
      let x = 5;
      let y = 6;
      let z = 7;

      let obj = {x, y, z};

      document.getElementById("print").innerHTML = JSON.stringify(obj);
   </script>
</body>
</html>

示例

計算屬性名 - 您可以使用表示式動態分配屬性名。

<html>
<body>
   <p id="print"></p>
   <script>
      let prop = 'name';
      let obj = {
         [prop]: 'John'
      };

      document.getElementById("print").innerHTML = JSON.stringify(obj);
   </script>
</body>
</html>

示例

方法屬性 - 您可以使用簡寫來在物件字面量中定義方法。

<html>
<body>
   <p id="print"></p>
   <script>
      let obj = {
         add(a, b) {
            return a + b;
         }
      };

      document.getElementById("print").innerHTML = obj.add(1, 2);
   </script>
</body>
</html>

這些新的增強功能允許您在使用物件時編寫更簡潔和更具表現力的程式碼,使使用 ES2015 建立和操作物件變得更容易。

新功能:解構

ES2015 引入了一種稱為解構的新功能,它允許您輕鬆地從陣列和物件中提取值並將其分配給變數。這可以使處理資料結構變得更容易,例如從物件或陣列中提取值,或在變數之間交換值。

語法

以下是物件解構的語法:

let [var1, var2, ...rest] = array;

示例

<html>
<head>
   <title>Destructuring Example</title>
</head>
<body>
   <p id="output"></p>
   <script>
      let arr = [1, 22, 3];
      let [a, b, c] = arr;

      // use innerHTML to display the values of a, b, and c
      document.getElementById("output").innerHTML = `${a}, ${b}, ${c}`;
   </script>
</body>
</html>

示例

解構也可用於提取巢狀屬性,或為可能缺少的屬性提供預設值。

<html>
<head>
   <title>Destructuring Example</title>
</head>
<body>
   <p id="output"></p>
   <p id="output1"></p>
   <script>
      //example 1
      let obj = { x: { y: { z: 1 } } };
      let { x: { y: { z: value } } } = obj;
      document.getElementById("output").innerHTML = value;
           
      //example 2
      let { x: x = 1, y: y = 22, z: z = 34 } = {};
      document.getElementById("output1").innerHTML = `${x}, ${y}, ${z}`;
   </script>
</body>
</html>

結論

總之,ES2015 是 JavaScript 的最新版本,它為該語言帶來了許多新功能和改進,例如新的 letconst 宣告、箭頭函式、模板字面量、增強的物件字面量和解構,這使得編寫更高效、更易維護的程式碼變得更容易。使用 ES2015,開發人員可以編寫更簡潔和更具表現力的程式碼,這可以使建立和操作資料變得更容易。所有這些新功能和改進使 JavaScript 比以往任何時候都更加強大。

更新於: 2023-01-19

368 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告