Tuy nhiên, đối số được kết hợp từ trái sang phải. Sau khi được gọi lần đầu
như ví dụ bên dưới, b có một giá trị không xác định, mặc dù đã được khai
báo với một giá trị mặc định. Đối số được truyền vào sẽ khớp với a thay vì b.
Hàm trả về NaN.
x(2)
// returns NaN
x(1, 3)
// returns 3
Khi bạn chuyển undefined làm đối số, giá trị mặc định được sử dụng nếu có.
x(undefined, 3)
// returns 6
5. Các tham số hàm còn lại
Khi gọi một hàm, đôi khi có một nhu cầu phát sinh, nhằm truyền vào một số
lượng đối số tùy ý và xử lý các đối số này trong hàm. Nhu cầu này được xử
lý bằng các tham số hàm còn lại. Đây là cách để nắm bắt phần còn lại của các
đối số, theo sau các đối số khác được xác định bằng cách sử dụng cú pháp
hiển thị bên dưới. Các đối số này được ghi lại trong một mảng.
var x = function(a, b, ...args) { console.log("a = " + a + ", b = " + b + ", " +
args.length + " args left"); }
x(2, 3)
// prints
a = 2, b = 3, 0 args left
x(2, 3, 4, 5)
// prints
a = 2, b = 3, 2 args left
6. String templating
String templating đề cập đến việc nội suy các biến và biểu thức thành chuỗi,
bằng cách sử dụng một cú pháp như perl hoặc shell. Một template chuỗi
được đính kèm trong các ký tự dấu kiểm ngược (`). Ngược lại, dấu nháy đơn
(') hoặc dấu ngoặc kép (“) cho biết các chuỗi bình thường. Biểu thức bên
trong mẫu được đánh dấu từ ${ và }. Đây là một ví dụ:
var name = "joe";
var x = `hello ${name}`
// returns "hello joe"