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

Default Parameters cho Function Parameters trong JavaScript


Default parameters (ES6) xử lý tham số function dễ dàng. Cho phép khởi tạo tham số với giá trị mặc định nếu không truyền hoặc truyền undefined.

Ví dụ

<html>
  <body>
    <script>
      // default inc = 1
      function inc(val1, inc = 1) {
        return val1 + inc;
      }
      document.write(inc(10, 10)); // 20
      document.write("<br>");
      document.write(inc(10));     // 11
    </script>
  </body>
</html>

Đặc điểm chính

  • Default expression evaluate mỗi lần gọi (neu default là function call, object literal...).
  • Chỉ trigger khi argument là undefined (hoặc không truyền). null không trigger.
  • Có thể tham chiếu parameter trước: function f(a = 1, b = a * 2) {}.
  • Destructuring với default: function f({x = 1, y = 2} = {}) {}.

Default Parameters vs Arguments Object

arguments object không reflect default values. Chỉ chứa args thực tế truyền vào. Dùng rest params ...args thay thế.

Pattern: Options Object (Best cho nhiều params)

function createUser({ name = "Guest", age = 18, role = "user" } = {}) {
  return { name, age, role };
}

createUser();                    // {name: "Guest", age: 18, role: "user"}
createUser({ name: "Alice" });   // {name: "Alice", age: 18, role: "user"}
createUser({ age: 25, role: "admin" }); // {name: "Guest", age: 25, role: "admin"}

Lưu ý

  • Tránh mutable default (array/object literal) → shared reference bug. Dùng null default + init bên trong.
  • Default parameter scope: có thể truy cập biến outer scope, nhưng không truy cập parameter sau (chưa khởi tạo).