Arguments javascript dễ hiểu mà sao họ giải thích dài thế

Nội dung bài viết

Trong một function, bạn có thể sử dụng arguments thay cho các tham số truyền vào hàm. arguments giống một Array nhưng không thực sự là một Array. Cùng đi tìm hiểu về vấn đề này, nếu muốn nhanh vui lòng kéo xuống phía phần kết luận.


Arguments javascript là gì?


Thật ra nó rất dễ hiểu, việc thông qua những ví dụ dưới đây là hiểu rồi. Nhưng đến giờ tôi không biết tại sao có nhiều bài viết giải thích dài dòng đến như vậy. Hãy xem ví dụ:

function add (num1, num2) {

	// logs [num1, num2] (with their values)
	console.log(arguments); [num1, num2]

	// Lấy ra param đầu tiên 
	console.log(arguments[0]); // num1

	// Lấy ra param thứ 2
	console.log(arguments[1]); // num2

	// ...

}

Ví dụ này chúng tôi tạo một Regular Function. Đừng nói với tôi Regular Function là gì? đấy nhé. Vậy thôi đơn giản gọn nhẹ, arguments giúp chúng ta lấy được tham số truyền vào một cách dễ dàng. Ở đây có ý kiến cho rằng vậy "khác gì cách lấy tham số đâu?" 


OK, ví dụ tiếp theo sẽ khác đấy.

function add () {

	// Set biến tổng
	let total = 0;

	// Cộng đồn mỗi params
	Array.from(arguments).forEach(function (num) {
		total += num;
	});

	// Return to the total
	return total;

}

Tiếp theo chúng ta sử dụng ví dụ này như sau:

// returns 0
add();

// returns 4
add(4);

// returns 36
add(4, 2, 11, 19);


Có gì khác chưa? Khác đúng không? Điều này đặc biệt hữu ích nếu bạn muốn cho phép một số lượng không giới hạn các đối số được chuyển vào hàm của bạn.


Arguments javascript sử dụng nên chú ý


Khi sử dụng Arguments trong javascript cũng nên chú ý một điều cũng hơi quan trọng đó là arguments giống như một Array nhưng nó không thực sự là một Array. Nếu nó là một Array thì tất cả 10 method của Array đều có thể sử dụng được. 

Nhưng ví dụ trên thì chúng ta phải nhờ đến người anh em Array.from trước sau đó mới sử dụng forEach(). Vậy Arguments thực sự là gì? Arguments có thể nói chính là Array-like.

Có thể bạn đã bị missing