Giá trị mặc định cho tham số

Giới thiệu nội dung bài viết

Chào các bạn, hôm nay anh sẽ hướng dẫn mọi người về cách khai báo giá trị mặc định cho tham số trong phương thức của ES6. Lần lượt giới thiệu và giải thích khái niệm giá trị mặc định trong phương thức của ES6 là gì?

1. Phân biệt tham số và đối số

Anh có ví dụ là phương thức add có 2 tham số truyền vào là x,y. Khi gọi phương thức add thì trả về kết quả cộng 2 số.

1
2
3
4
5
function add(x, y) {
   return x + y;
}

add(100,200);

Như vậy x và y được gọi là THAM SỐ. Chúng được sử dụng để định nghĩa phương thức add sẽ có 2 giá trị truyền vào.

Còn phương thức gọi hàm add(100,200). Thì 100 và 200 được gọi là ĐỐI SỐ. Đối số là giá trị ta sẽ truyền cho phương thức.

2. Thiết lập giá trị mặc định cho phương thức

Ví dụ anh có phương thức say(message) với tham số là message. Khi gọi vào phương thức say() thì in cho anh messeag.

1
2
3
4
5
function say(message) {
    console.log(message);
}

say(); // undefined

Khi phương thức say() được gọi chúng ta sẽ nhận được kết quả là Undefined bởi vì chúng ta không truyền đối số cho hàm say()

Giả sử chúng ta mong muốn khi không truyền đối số vào thì chúng ta sẽ đặt giá trị mặc định cho message là 10. Lúc này ta phải chỉnh sửa lại đoạn mã ở trên và thêm phần kiểm tra giá trị biến message như sau

1
2
3
4
5
6
function say(message) {
    message = typeof message !== 'undefined' ? message : 'Hi';
    console.log(message);
}

say();

Như vậy khi ta gọi hàm say() chúng ta sẽ nhận được giá trị là Hi.

Trong ES6 hỗ trợ chúng ta cách đặt giá trị mặc định cho tham số mà chúng ta không cần phải viết code để kiểm tra với cú pháp như sau.

1
2
3
function fn(param1=default1,param2=default2,..) {

}

Chúng ta sử dụng dấu = và giá trị sau tham số để đặt giá trị mặc định. Ví dụ như chúng ta muốn đặt giá trị Hi cho biến message thì chúng ta làm như sau.

1
2
3
4
5
6
7
function say(message='Hi') {
    console.log(message);
}

say(); // 'Hi'
say(undefined); // 'Hi'
say('Hello'); // 'Hello'

Khi chúng ta không truyền giá trị thì chúng ta sẽ nhận được chuỗi mặc định là Hi. Còn nếu chúng ta truyền vào đối số là chữ Hello thì sẽ nhận được kết quả Hello

3. Thiết lập giá trị mặc định bằng cách sử dụng tham số khác

Anh có ví dụ như sau.

1
2
3
4
5
function add(x = 1, y = x, z = x + y) {
    return x + y + z;
}

console.log(add()); // 4

Khi gọi phương thức add chúng ta có giá trị mặc định của x là 1, giá trị của y là 1 và giá trị của z là 2. Nhưng vậy khi gọi phép toán cộng ta sẽ có 1 + 1 + 2 nên kết quả nhận được sẽ là 4.

4. Thiết lập giá trị mặc định bằng cách sử dụng phương thức

Anh có ví dụ như sau

1
2
3
4
5
6
7
let taxRate = () => 0.1;
let getPrice = function( price, tax = price * taxRate() ) {
    return price + tax;
}

let fullPrice = getPrice(100);
console.log(fullPrice); // 110

Tham số tax trong phương thức là bằng price nhân với phương thức taxRate. Như vậy chúng ta có thể khai báo giá trị mặc định trong phương thức bằng cách gọi một phương thức khác.


Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm

Các khoá học lập trình MIỄN PHÍ tại đây


Comments