ES6 Default Parameter

Nguyễn Duy

Tham Số Mặc Định

Trong nhiều trường hợp, khi định nghĩa một hàm chúng ta muốn gán giá trị mặc định cho tham số trong hàm để khi hàm được gọi nếu không có giá trị nào truyền vào cho các tham số này thì giá trị mặc định của chúng sẽ được sử dụng.

Với các phiên bản trước của ECMAScript không cung cấp sẵn tính năng gán giá trị mặc định cho tham số của hàm mà thông thường cần phải thực hiện thông qua một số bước gián tiếp khác để đạt được mục đính tương tự. Trong ECMAScript 6, tính năng gán giá trị mặc định cho tham số đã được hỗ trợ:

function sayHi(name = 'there') {
    console.log("Hi " + name + '!');
}

Tham số name trong sayHi() ở đoạn code trên sẽ được gán giá trị đối số mặc định với giá trị là there. Khi gọi hàm sayHi() được định nghĩa như ở ví dụ trên, nếu như chúng ta không truyền vào giá trị (hay đối số) nào cho tham số name trong hàm này thì giá trị mặc định there sẽ được sử dụng:

sayHi('John');
// Hi John!

sayHi();
// Hi there!

Lưu ý: Một số ngôn ngữ lập trình khác sử dụng thuật ngữ đối số mặc định (default argument) thay vì tham số mặc định (default parameter). Mặc dù hai thuật ngữ parameter và argument (không có default phía trước) có ý nghĩa khác nhau, default argumentdefault parameter trong ngữ cảnh này có ý nghĩa như nhau.

Đối Số undefined

Trong khi gọi hàm, với các tham số được khai báo với giá trị đối số mặc định thì việc sử dụng đối số với giá trị là undefined tương đương với việc không truyền vào đối số (hay sử dụng đối số mặc định).

function sayHi(name = 'there') {
    console.log("Hi " + name + '!');
    console.log(typeof name);
}

sayHi();
// Hi there!
// string

sayHi(undefined);
// Hi there!
// string

Ngoài undefined ra thì tất cả các giá trị khác sử dụng cho tham số vẫn được sử dụng thông thường thay vì sử dụng đối số mặc định:

sayHi(null);

// Hi null!
// object

sayHi(false);
// Hi false!
// boolean

1 Phản Hồi

Thêm Phản Hồi

Câu Hỏi Liên Quan

Hướng Dẫn Liên Quan