Tham số hàm JavaScript
function
JavaScript không thực hiện bất kỳ việc kiểm tra nào đối với các giá trị tham số (đối số).
Tham số và đối số của hàm
Ở phần trước của 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.
Đối số của hàm là các giá trị thực được truyền vào (và được nhận bởi) hàm.
Quy tắc tham số
Định nghĩa hàm JavaScript không chỉ định loại dữ liệu cho 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.
Các hàm JavaScript không kiểm tra số lượng đối số nhận được.
Thông số mặc định
Nếu một hàm được gọi mà thiếu đối số (ít hơn đối số được khai báo), thì các giá trị bị thiếu sẽ đượ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 là gán giá trị mặc định cho tham số:
Giá trị tham số mặc định
ES6 cho phép các tham số hàm có giá trị mặc định.
Ví dụ
Nếu y không được thông qua hoặc không được xác định thì y = 10.
function myFunction(x, y = 10) {
return x + y;
}
myFunction(5);
Hãy tự mình thử »Tham số nghỉ chức năng
Tham số còn lại (...) cho phép một hàm xử lý số lượng đối số không xác định dưới dạng một mảng:
Ví dụ
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
Hãy tự mình thử » Đố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ố:
Ví 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;
}
Hãy tự mình thử »Hoặc tạo một hàm để tính tổng tất cả các giá trị đầu vào:
Ví 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;
}
Hãy tự mình thử »Nếu một hàm được gọi với quá nhiều đối số (nhiều hơn số được khai báo), thì có thể đạt được những đối số này bằng cách sử dụng đối tượng đối số .
Đối số được truyền theo giá trị
Các tham số trong lệnh 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 biết vị trí của đối số.
Nếu một hàm thay đổi giá trị của một đối số thì nó sẽ 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ị (được phản ánh) bên ngoài hàm.
Các đối tượng được truyền theo tham chiếu
Trong JavaScript, tham chiếu đối tượng là giá trị.
Vì điều này, các đối tượng sẽ hoạt động giống như chúng được truyền bằng tham chiếu:
Nếu một hàm thay đổi một thuộc tính đối tượng, nó sẽ thay đổi giá trị ban đầu.
Những thay đổi đối với thuộc tính đối tượng được hiển thị (phản ánh) bên ngoài hàm.