Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Các Toán tử mới nhất thêm vào JavaScript


Các toán tử mới nhất thêm vào JavaScript (ES6/ES2018/ES2020): Spread Operator (...) và Rest Parameter (...). Cùng ký hiệu nhưng ngữ cảnh khác nhau.

Rest Operator (Rest Parameter)

Thu gom nhiều argument thành array. ES6. Ký hiệu ... trước tham số cuối cùng.

Ví dụ

<html>
  <body>
    <script>
      function addition(...numbers) {
        var res = 0;
        numbers.forEach(function(number) {
          res += number;
        });
        return res;
      }
      document.write(addition(3));           // 3
      document.write(addition(9,10,11,12,13)); // 55
    </script>
  </body>
</html>

Spread Operator

Cho phép expression expand thành nhiều argument, element, variable...

Ví dụ

<html>
  <body>
    <script>
      var a = [10, 20];
      var b = "rank";
      var c = [30, "points"];
      var d = "run";
      
      // concat method (cũ)
      e = a.concat(b, c, d);
      
      // spread operator (ES6)
      f = [...a, b, ...c, d];
      
      document.write(e);        // 10,20,rank,30,points,run
      document.write("<br>" + f); // 10,20,rank,30,points,run
    </script>
  </body>
</html>

Các toán tử mới khác (ES2020+)

  • Optional Chaining (?.): obj?.prop?.method() - tránh lỗi null/undefined.
  • Nullish Coalescing (??): value ?? default - fallback chỉ khi null/undefined.
  • Logical Assignment (??=, ||=, &&=): x ??= default.
  • Private Class Fields (#field): class C { #private = 1; }.

Tóm tắt

OperatorVersionMô tả
... (spread)ES6Trải array/object thành elements
... (rest)ES6Gom elements thành array
?.ES2020Optional chaining
??ES2020Nullish coalescing
??=ES2021Nullish assignment
#ES2022Private class field