Arguments object trong javascript là gì? Cách sử dụng?
Trong ngôn ngữ JavaScript, việc truyền đối số cho function không giống như các ngôn ngữ khác. JavaScript không quan tâm chúng ta truyền vào bao nhiêu đối số, cũng như kiểu dữ liệu của đối số là gì. Chúng ta có thể tạo ra một hàm có hai đối số nhưng chúng ta có thể chỉ truyền vào một đối số hoặc truyền vào ba, bốn, năm…..đối số cũng không có vấn đề gì cả.
Để làm điều nói ở trên, ngôn ngữ lập trình Javascript cung cấp một biến cục bộ (biến theo ngữ cảnh) với tên arguments
chứa các tham số được truyền vào hàm.
VD:
function cong(a, b) { alert(arguments[0] + arguments[1]); }
Đối tượng đối số là một biến cục bộ có sẵn trong tất cả các hàm không phải là mũi tên. Bạn có thể tham chiếu đến các đối số của một hàm bên trong hàm đó bằng cách sử dụng đối tượng đối số của nó. Nó có các mục nhập cho mỗi đối số mà hàm được gọi với, với chỉ mục của mục nhập đầu tiên là 0.
Ví dụ: nếu một hàm được truyền 3 đối số, bạn có thể truy cập chúng như sau:
arguments[0] // first argument
arguments[1] // second argument
arguments[2] // third argument
Mỗi đối số cũng có thể được đặt hoặc chỉ định lại:
arguments[1] = 'new value';
Tuy nhiên, nó có thể chuyển đổi thành Array
:
var args = Array.prototype.slice.call(arguments);
// Using an array literal is shorter than above but allocates an empty array
var args = [].slice.call(arguments);
As you can do with any Array-like object, bạn có thể dùng ES2015’s Array.from()
hoặc spread syntax để chuyển arguments
đến mảng Array:
let args = Array.from(arguments);
// or
let args = [...arguments];
Hàm arguments
hữu ích cho các hàm được gọi với nhiều đối số hơn chúng được khai báo chính thức để chấp nhận. Kỹ thuật này hữu ích cho các hàm có thể được truyền một số đối số thay đổi, giống như Math.min()
. Ví dụ hàm này chấp nhận bất kỳ số lượng đối số chuỗi nào và trả về đối số dài nhất:
function longestString() {
var longest = '';
for (var i=0; i < arguments.length; i++) {
if (arguments[i].length > longest.length) {
longest = arguments[i];
}
}
return longest;
}
Bạn có thể dùng arguments.length
để đếm có bao nhiêu đối số mà hàm được gọi với. Thay vào đó, nếu bạn muốn đếm số lượng tham số mà một hàm được khai báo để chấp nhận, hãy kiểm tra hàm length
.
Tham khảo chi tiết thêm tại đây!
Cập nhật tin tuyển dụng Javascript mới nhất tại Topdev.vn
- N Nâng tầm kỹ năng JavaScript: 6 khái niệm không thể bỏ qua
- J Jest là gì? Hướng dẫn thực hiện kiểm thử JavaScript với Jest
- S Strict Mode trong JavaScript – Sử dụng Strict Mode như thế nào cho tốt?
- T Tìm hiểu về Intl.RelativeTimeFormat trong JavaScript
- K Kinh nghiệm xử lý câu lệnh điều kiện trong JavaScript
- C Các cách xóa một property của Object trong Javascript
- K Kinh nghiệm truy xuất giá trị trong object lồng nhau trong Javascript
- H Hằng số và tính bất biến trong JavaScript
- T Thư viện Driver.js tạo hướng dẫn tương tác trang web
- C Các tips hiệu quả nhất khi làm việc với Javascript