Giới thiệu
JavaScript hỗ trợ tham số mặc định từ ES2016 (hoặc ES6) với cú pháp như sau
function name(params1=defaultValue1,...){
// do something
}
Ví dụ cụ thể
function MultiplyCoefficient(x: number, y: number, factor: number = 1) {
return (x + y) * factor;
}
console.log(MultiplyCoefficient(10, 10)); // (10+10)*1 = 20
console.log(MultiplyCoefficient(10, 10, 2)); // (10+10)*2 = 40
Ví dụ bên trên tạo một function với việc nhân hệ số hai tham số x và y, trong đó tham số factor được gán mặc định giá trị 1. Do đó nếu không đề cập đến tham số factor thì nó sẽ mặc định là 1 và ngược lại nếu được đề cập nó sẽ mang giá trị mà bạn đặt cho nó.
Lưu ý: không thể tạo một function type với default parameter
let sum : (x:number, y:number = 5 ) =>number; // Error
Default parameter và Optional parameters
Cả hai đều có chung một kiểu function type, ví dụ:
let multi1 = function (x: number, y: number = 5): number {
return x * y;
};
let multi2 = function (x: number, y?: number): number {
if (typeof y === "number") {
return x * y;
} else {
return x;
}
};
Cả hai đều sử dụng một function type là: (local function)(x: number, y?: number): number
Tiếp theo là một ví dụ tính số ngày có trong tháng của một năm
function getDay(
year: number = new Date().getFullYear(),
month: number
): number {
let day = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
// leap year
if ((year % 4 == 0 && !(year % 100 == 0)) || year % 400 == 0) day = 29;
else day = 28;
break;
default:
throw Error("Invalid month");
}
return day;
}
console.log(getDay(1997, 2)); // 28
console.log(getDay(undefined, 2)); // 29
Ví dụ trên ta thấy function getDay có số năm là default , nó sẽ lấy năm mới nhất nếu bạn đề cập với từ khóa undefined, nhưng không được bỏ trống
Tóm tắt bài này bạn cần nhớ
Sử dụng default parameter với cú pháp parameter:defaultValue
Default paramter là một tham số tùy chọn
Bạn có thể dùng default parameter khi bạn nhập undefined trong funtion