Tham số hàm JavaScript
JavaScript function
không thực hiện bất kỳ kiểm tra nào đối với các giá trị tham số (đối số).
Các tham số và đối số của hàm
Trước đó trong hướng dẫn này, bạn đã biết rằng các hàm có thể có các tham số :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
Tham số hàm là tên được liệt kê trong định nghĩa hàm.
Các đối số của hàm là các giá trị thực được chuyển đến (và được nhận bởi) hàm.
Quy tắc tham số
Định nghĩa hàm JavaScript không chỉ định kiểu dữ liệu cho các tham số.
Các hàm JavaScript không thực hiện kiểm tra kiểu trên các đối số được truyền vào.
Các hàm JavaScript không kiểm tra số lượng đối số nhận được.
Tham số mặc định
Nếu một hàm được gọi với các đối số bị thiếu (ít hơn được khai báo), các giá trị bị thiếu được đặt thành
undefined
.
Đôi khi điều này có thể chấp nhận được, nhưng đôi khi tốt hơn nên gán giá trị mặc định cho tham số:
Thí dụ
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015 cho phép các giá trị tham số mặc định trong khai báo hàm:
function myFunction(x, y = 2) {
// function code
}
Đối tượng Đối số
Các hàm JavaScript có một đối tượng tích hợp được gọi là đối tượng đối số.
Đối tượng đối số chứa một mảng các đối số được sử dụng khi hàm được gọi (được gọi).
Bằng cách này, bạn có thể chỉ cần sử dụng một hàm để tìm (ví dụ) giá trị cao nhất trong danh sách các số:
Thí dụ
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Hoặc tạo một hàm để tính tổng tất cả các giá trị đầu vào:
Thí dụ
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Nếu một hàm được gọi với quá nhiều đối số (nhiều hơn được khai báo), thì các đối số này có thể đạt được bằng cách sử dụng đối tượng đối số .
Các đối số được thông qua theo giá trị
Các tham số, trong một lời gọi hàm, là các đối số của hàm.
Các đối số JavaScript được truyền theo giá trị : Hàm chỉ biết các giá trị chứ không phải vị trí của đối số.
Nếu một hàm thay đổi giá trị của đối số, nó không thay đổi giá trị ban đầu của tham số.
Các thay đổi đối với đối số không hiển thị (phản ánh) bên ngoài hàm.
Đối tượng được chuyển qua tham chiếu
Trong JavaScript, các tham chiếu đối tượng là các giá trị.
Do đó, các đối tượng sẽ hoạt động giống như chúng được truyền qua tham chiếu:
Nếu một hàm thay đổi thuộc tính đối tượng, nó sẽ thay đổi giá trị ban đầu.
Các thay đổi đối với thuộc tính đối tượng có thể nhìn thấy (phản ánh) bên ngoài hàm.