Hướng dẫn default parameter javascript - javascript tham số mặc định

  • Giới thiệu
  • Tham số mặc định
  • Đối số undefined

Giới thiệu

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ố (Default Parameter) 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.(Default Parameter) 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ợ.

Hướng dẫn default parameter javascript - javascript tham số mặc định

Tham số mặc định

Đối số undefined

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

Code language: JavaScript (javascript)

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ố (Default Parameter) 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.

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

Code language: JavaScript (javascript)

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ợ. 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 argument và default parameter trong ngữ cảnh này có ý nghĩa như nhau.

Hướng dẫn default parameter javascript - javascript tham số mặc định

Đối số undefined

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ố (Default Parameter) 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.

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

Code language: JavaScript (javascript)

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ợ.

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

Code language: JavaScript (javascript)

Cùng xem ví dụ sau:

Tham số 

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

Code language: JavaScript (javascript)
7 trong 

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

Code language: JavaScript (javascript)
8 ở đoạn code trên sẽ được gán giá trị đối số mặc định với giá trị là 

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

Code language: JavaScript (javascript)
9. Khi gọi hàm 

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

Code language: JavaScript (javascript)
8 đượ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ố 

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

Code language: JavaScript (javascript)
7 trong hàm này thì giá trị mặc định 

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

Code language: JavaScript (javascript)
9 sẽ được sử dụng:tại đây.


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 argument và default parameter trong ngữ cảnh này có ý nghĩa như nhau.Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Ngoài ra, giá trị được sử dụng trong một tham số có thể được sử dụng trong mọi tham số mặc định tiếp theo, từ trái sang phải.

Đến đây chưa phải là hết mà mới là bắt đầu của bài viết này thôi, quan trọng là phần này

Set Default Parameters cho một function

Trong đoạn mã dưới này, bạn sẽ tạo một hàm để trả về một số ngẫu nhiên, sau đó sử dụng kết quả làm giá trị tham số mặc định trong // Define a function to cube a number function cube(x) { return x * x * x }0 function:

Kết luận

Trong bài viết này, chúng ta sẽ phân biệt được

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

Code language: JavaScript (javascript)
5 và

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

Code language: JavaScript (javascript)
6. Và làm thế nào sử dụng default

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

Code language: JavaScript (javascript)
5 trong functions. Và chúng ta sẽ trải qua những ví dụ, để hiểu hơn về Default Parameters.

Phân biệt Arguments và Parameters

Để phân biệt được arguments và

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

Code language: JavaScript (javascript)
5 thì chúng ta cùng xem xét ví dụ dưới đây

// Define a function to cube a number
function cube(x) {
  return x * x * x
}

Biến x chính là một

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

Code language: JavaScript (javascript)
5 của ví dụ trên, một biến được đặt tên và truyền vào một function, và một

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

Code language: JavaScript (javascript)
5 luôn luôn chứa ít nhất một biến.

Tiếp theo xem thử

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

Code language: JavaScript (javascript)
1 chạy thế nào?

// Invoke cube function
cube(10)

//Ouput: 1000

Đi tiếp đoạn code tiếp theo

// Assign a number to a variable
const number = 10

// Invoke cube function
cube(number)

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

Code language: JavaScript (javascript)
2 chính là một

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

Code language: JavaScript (javascript)
6 hay là một giá trị được truyền cho hàm khi nó được gọi. Thường thì giá trị cũng sẽ được chứa trong một biến, chẳng hạn như trên bạn đã thấy. Giả sử chúng ta có một sai lầm là không truyền vào một

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

Code language: JavaScript (javascript)
5 hay

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

Code language: JavaScript (javascript)
6 nào cho hàm cube thì chuyện gì xảy ra?

// Invoke the cube function without passing an argument
cube()

//Output: NaN

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

Code language: JavaScript (javascript)
6: Chính là 'Not a Number', lý do khi chúng ta không pass một

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

Code language: JavaScript (javascript)
6 thì function hiểu ngầm mặc định là undefined. Để điều đó không xảy ra thì Default Parameter ra đời.

Cú pháp Default Parameter trong JavaScript

Trước kia khi chưa được ES6 giới thiệu về Default Parameter thì chúng ta thường check một cách điển hình như thế này, còn ai không check thì kệ nó, và kết thúc bài viết tại đây.

Tipjs: Tổng hợp tính năng javascript mới nhất kể từ ES6 đến ES11

// Check for undefined manually
function cube(x) {
  if (typeof x === 'undefined') {
    x = 5
  }

  return x * x * x
}

cube()

Bạn sử dụng check điều điện trong JavaScript để check nếu

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

Code language: JavaScript (javascript)
8 thì gán cho nó = 5. Tuyệt vời, nhưng giờ đây bạn không cần phải sử dụng như trên nữa, thay vào đó chúng ta sẽ sử dụng cách dưới đây.

// Define a cube function with a default value
function cube(x = 5) {
  return x * x * x
}

Sử dụng:

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

Code language: JavaScript (javascript)
0

Thậm chí set

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

Code language: JavaScript (javascript)
3 cũng có kết quả tương tự.

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

Code language: JavaScript (javascript)
1

Đến đây bạn có thể check xem Default Parameter support được bao nhiêu kiểu định dạng:

Default Parameter Data Types trong JavaScript

Ví dụ :

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

Code language: JavaScript (javascript)
2

Nhưng chưa hết bạn có nhớ ES6-2019122141422037">Destructuring JavaScript" , điều này cũng có thể làm tương tự với destructuring

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

Code language: JavaScript (javascript)
3

Sử sụng Multiple Default Parameters

Đến đây, tôi nghĩ các bạn cũng đã hiểu hơn rồi, và cùng xem những ví dụ để hiều hơn về set multiple

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

Code language: JavaScript (javascript)
4

Ngoài ra, giá trị được sử dụng trong một tham số có thể được sử dụng trong mọi tham số mặc định tiếp theo, từ trái sang phải.

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

Code language: JavaScript (javascript)
5

Đến đây chưa phải là hết mà mới là bắt đầu của bài viết này thôi, quan trọng là phần này

Set Default Parameters cho một function

Trong đoạn mã dưới này, bạn sẽ tạo một hàm để trả về một số ngẫu nhiên, sau đó sử dụng kết quả làm giá trị tham số mặc định trong

// Define a function to cube a number
function cube(x) {
  return x * x * x
}
0 function:

Ví dụ :

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

Code language: JavaScript (javascript)
6

Nhưng chưa hết bạn có nhớ ES6-2019122141422037">Destructuring JavaScript" , điều này cũng có thể làm tương tự với destructuring

Sử sụng Multiple Default Parameters

Đến đây, tôi nghĩ các bạn cũng đã hiểu hơn rồi, và cùng xem những ví dụ để hiều hơn về set multiple