Tham số mặc định của JavaScript

Trong hướng dẫn này, bạn sẽ tìm hiểu về các tham số mặc định của JavaScript với sự trợ giúp của các ví dụ.

Khái niệm về các tham số mặc định là một tính năng mới được giới thiệu trong phiên bản JavaScript ES6 . Điều này cho phép chúng tôi cung cấp các giá trị mặc định cho các tham số của hàm. Hãy lấy một ví dụ,

 function sum(x = 3, y = 5) ( // return sum return x + y; ) console.log(sum(5, 15)); // 20 console.log(sum(7)); // 12 console.log(sum()); // 8

Trong ví dụ trên, giá trị mặc định x3 và giá trị mặc định y5 .

  • sum(5, 15)- Khi cả hai đối số được truyền, xlấy 5ylấy 15 .
  • sum(7)- Khi 7 được truyền cho sum()hàm, xlấy 7ylấy giá trị mặc định là 5 .
  • sum()- Khi không có đối số nào được truyền vào hàm sum () , xnhận giá trị mặc định 3ynhận giá trị mặc định 5 .
Cách đối số mặc định hoạt động trong JavaScript

Sử dụng Biểu thức làm Giá trị Mặc định

Cũng có thể cung cấp các biểu thức làm giá trị mặc định.

Ví dụ 1: Truyền tham số làm giá trị mặc định

 function sum(x = 1, y = x, z = x + y) ( console.log( x + y + z ); ) sum(); // 4

Trong chương trình trên,

  • Giá trị mặc định của x1
  • Giá trị mặc định của yđược đặt thành xtham số
  • Giá trị mặc định của zlà tổng của xy

Nếu bạn tham chiếu tham số chưa được khởi tạo, bạn sẽ gặp lỗi. Ví dụ,

 function sum( x = y, y = 1 ) ( console.log( x + y); ) sum(); 
Đầu ra
 ReferenceError: Không thể truy cập 'y' trước khi khởi chạy

Ví dụ 2: Truyền Giá trị Hàm làm Giá trị Mặc định

 // using a function in default value expression const sum = () => 15; const calculate = function( x, y = x * sum() ) ( return x + y; ) const result = calculate(10); console.log(result); // 160

Trong chương trình trên,

  • 10 được chuyển cho calculate()hàm.
  • xtrở thành 10, và ytrở thành 150(hàm tổng trả về 15).
  • Kết quả sẽ là 160.

Chuyển giá trị không xác định

Trong JavaScript, khi bạn chuyển undefinedđến một hàm tham số mặc định, hàm sẽ nhận giá trị mặc định. Ví dụ,

 function test(x = 1) ( console.log(x); ) // passing undefined // takes default value 1 test(undefined); // 1

thú vị bài viết...