Khái niệm về tham số mặc định là một tính năng mới được giới thiệu trong phiên bản ES6 của JavaScript. Điều này cho phép chúng ta đặt giá trị mặc định cho các tham số của hàm. Hãy xem 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 của x
là 3 và giá trị mặc định của y
là 5.
sum(5, 15)
– Khi cả hai đối số được truyền,x
lấy giá trị 5 vày
lấy giá trị 15.sum(7)
– Khi 7 được truyền vào hàmsum()
,x
lấy giá trị 7 vày
lấ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(),x
lấy giá trị mặc định 3 vày
lấy giá trị mặc định 5.
Cách tham 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ó khả năng cung cấp 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
x
là 1 - Giá trị mặc định của
y
được đặt là tham sốx
- Giá trị mặc định của
z
là tổng củax
vày
Nếu bạn tham chiếu đến tham số chưa được khởi tạo, bạn sẽ nhận được một lỗi. Ví dụ,
function sum( x = y, y = 1 ) {
console.log( x + y);
}
sum();
Kết quả
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 được truyền vào hàm
calculate()
. x
trở thành10
, vày
trở thành150
(hàm tổng trả về15
).- Kết quả sẽ là
160
.
Truyền Giá trị undefined
Trong JavaScript, khi bạn truyền undefined
vào một hàm tham số mặc định, hàm sẽ lấy giá trị mặc định. Ví dụ,
function test(x = 1) {
console.log(x);
}
// passing undefined
// takes default value 1
test(undefined); // 1
- Bài đăng blog này ban đầu được xuất bản tại:https://www.programiz.com/