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 x
là 3 và giá trị mặc định y
là 5 .
sum(5, 15)
– When both arguments are passed,x
takes 5 andy
takes 15.sum(7)
– When 7 is passed to thesum()
function,x
takes 7 andy
takes default value 5.sum()
– When no argument is passed to the sum() function,x
takes default value 3 andy
takes default value 5.
Cách hoạt động của các đối số mặc định 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,
- The default value of
x
is 1 - The default value of
y
is set tox
parameter - The default value of
z
is the sum ofx
andy
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: Cannot access 'y' before initialization
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 is passed to the
calculate()
function. x
becomes10
, andy
becomes150
(the sum function returns15
).- The result will be
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