Hướng dẫn javascript call function parameter - tham số hàm gọi javascript


JavaScript function không thực hiện bất kỳ kiểm tra nào trên các giá trị tham số (đối số).

Nội phân chính

  • Tham số và đối số chức năng
  • Quy tắc tham số
  • Tham số mặc định
  • Đối tượng đối số
  • Đối số được truyền theo giá trị
  • Đối tượng được truyền qua tham chiếu
  • Đối tượng đối số Là Gì Trong JavaScript
  • Tìm số đối số đ ne truyền vào h không
  • Lấy Các Giá trị Truyền vào trong ha bằng đối số đối tượng
  • Chú ý Khi
  • Tổng kết


Tham số và đối số chức năng

Quy tắc tham số parameters:

Tham số mặc định
  // code to be executed
}

Đối tượng đối sốparameters are the names listed in the function definition.

Đối số được truyền theo giá trịarguments are the real values passed to (and received by) the function.


Quy tắc tham số

Tham số mặc định

Đối tượng đối số

Đối số được truyền theo giá trị


Tham số mặc định

Đối tượng đối sốmissing arguments (less than declared), the missing values are set to undefined.

Đối số được truyền theo giá trị

Đối tượng được truyền qua tham chiếu

Đối tượng đối số Là Gì Trong JavaScript
  if (y === undefined) {
    y = 2;
  }
}

Tìm số đối số đ ne truyền vào h không



Đối tượng đối số

Đối số được truyền theo giá trị

Đối tượng được truyền qua tham chiếu

Đối tượng đối số Là Gì Trong JavaScript

Đối tượng được truyền qua tham chiếu

Đối tượng đối số Là Gì Trong JavaScript

Tìm số đối số đ ne truyền vào h không
  let max = -Infinity;
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i] > max) {
      max = arguments[i];
    }
  }
  return max;
}

Tìm số đối số đ ne truyền vào h không

Lấy Các Giá trị Truyền vào trong ha bằng đối số đối tượng

Đối tượng được truyền qua tham chiếu

Đối tượng đối số Là Gì Trong JavaScript

Tìm số đối số đ ne truyền vào h không
  let sum = 0;
  for (let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  return sum;
}

Tìm số đối số đ ne truyền vào h không

Lấy Các Giá trị Truyền vào trong ha bằng đối số đối tượngtoo many arguments (more than declared), these arguments can be reached using the arguments object.


Đối số được truyền theo giá trị

Đối tượng được truyền qua tham chiếu

Đối tượng đối số Là Gì Trong JavaScriptvalue: The function only gets to know the values, not the argument's locations.

Tìm số đối số đ ne truyền vào h không

Lấy Các Giá trị Truyền vào trong ha bằng đối số đối tượng


Đối tượng được truyền qua tham chiếu

Đối tượng đối số Là Gì Trong JavaScript

Tìm số đối số đ ne truyền vào h khôngreference:

Lấy Các Giá trị Truyền vào trong ha bằng đối số đối tượng

Chú ý Khi

Tổng kếtarguments object trong javascript. Bạn sẽ học được cách sử dụng arguments để lấy các giá trị đã truyền vào hàm, cũng như các chú ý khi sử dụng arguments object trong javascript sau bài học này.

  • Trước đó trong hướng dẫn này, bạn đã học được rằng các chức năng có thể có các tham số:
  • hàm functionName (tham số1, tham số2, tham số3) {& nbsp; // Mã được thực thi}

Đối tượng đối số Là Gì Trong JavaScript

Tìm số đối số đ ne truyền vào h khôngmảng trong JavaScript, có khả năng truy cập được vào bên trong hàm và chứa các giá trị của các đối số đã được truyền cho hàm đó.

Lấy Các Giá trị Truyền vào trong ha bằng đối số đối tượng

Chú ý Khi

function sum(a,b,c){
return a + b + c;
}

Tổng kết

sum(10,20,30);

Trước đó trong hướng dẫn này, bạn đã học được rằng các chức năng có thể có các tham số:

hàm functionName (tham số1, tham số2, tham số3) {& nbsp; // Mã được thực thi}

  • Các tham số chức năng là các tên được liệt kê trong định nghĩa chức năng.

Đối số chức năng là các giá trị thực được truyền đến (và nhận được bởi) hàm.

Arguments object thường được sử dụng trong các hàm mà chúng ta không quyết định số lượng đối số truyền vào hàm, và tất cả các đối số đều được lưu giữ hết trong Arguments mà không cần quan tâm tới số lượng của chúng là bao nhiêu. Tuy nhiên trong các phiên bản JavaScript mới đã được thêm vào Rest parameters với toán tử ba chấm, do đó ngoài Arguments thì chúng ta cũng có thêm lựa chọn khác khi muốn truyền tham số vào hàm trong JavaScript mà không giới hạn số lượng đối số.

  • Xem thêm: Truyền tham số vào hàm trong JavaScript

Sau đây chúng ta sẽ cùng tìm hiểu các cách sử dụng Arguments object trong JavaScript.

Tìm số đối số đã truyền vào hàm bằng Arguments object trong JavaScript

Trong JavaScript, số lượng đối số truyền vào hàm và số lượng tham số dùng để nhận đối số không nhất thiết cần phải giống nhau. Giả sử số đối số truyền vào có lớn hơn số tham số sử dụng trong hàm chăng nữa, thì số đối số thừa sẽ không được sử dụng. Hoặc là nếu số đối số có nhỏ hơn số tham số sử dụng trong hàm, thì giá trị mặc định là undefined cũng sẽ được gán vào tham số, và lỗi cũng sẽ không xảy ra.

  • Xem thêm: Truyền tham số vào hàm trong JavaScript

Giống như thế, khi chúng ta gọi hàm trong JavaScript, số đối số chúng ta truyền vào hàm không nhất định bằng với số tham số chỉ định trong hàm. Trong trường hợp này, chúng ta có thể sử dụng thuộc tính

sum(10,20,30);
5 của Arguments object và tìm số đối số đã truyền vào hàm.

Ví dụ chúng ta tìm số đối số đã truyền vào hàm sau trong JavaScript:

function find_user(name,old){
console.log('arguments.length : ' + arguments.length);
}

find_user('Kiyoshi', 30);


find_user('Honda', 20, 'tokyo');


find_user('Suzuki');

Giống như trên, số lượng đối số thực tế mà chúng ta đã truyền vào hàm sẽ được truy xuất thông qua thuộc tính

sum(10,20,30);
8.

Lấy các giá trị truyền vào trong hàm bằng Arguments object trong JavaScript

Giá trị của các đối số truyền vào trong hàm JavaScript sẽ được gán vào các biến có tên (tham số) ở bên trong hàm đó. Tuy nhiên nó cũng còn được lưu giữ một cách riêng biệt trong Arguments object dưới dạng arguments[0],arguments[1]…

Ví dụ chúng ta có thể lấy giá trị truyền vào hàm thông qua Arguments object như sau:

function find_user(name,old){
console.log('name : ' + arguments[0]);
console.log('old : ' + arguments[1]);
}

find_user('Kiyoshi', 30);


Tất nhiên chúng ta có thể lấy giá trị truyền vào hàm thông qua cả tham số lẫn Arguments object như sau:

function find_user(name,old){
console.log('Lấy name bằng arguments : ' + arguments[0]);
console.log('Lấy name bằng tham số : ' + name;
}

find_user('Kiyoshi', 30);


Chúng ta cũng có thể sử dụng arguments trong JavaScript khi cần truyền tham số vào hàm trong JavaScript mà không giới hạn số lượng đối số, do tất cả các đối số này không giới hạn số lượng đều được lưu cả vào trong arguments rồi. Ví dụ:

function find_sum(){
let sum = 0;
for (let i = 0; i < arguments.length; i++){
sum += arguments[i];
}

console.log('sum = ' + sum);
}

find_sum(1, 3, 5);


find_sum(7, 12, 3, 2, 8);

Chú ý khi sử dụng Arguments trong JavaScript

Trong các hàm được khai báo bởi từ khóa fucntion, bằng hàm tạo (constructor) cũng như là bằng biểu thức hàm với các hàm ẩn danh, chúng ta đều có thể sử dụng Arguments với các cách mà Kiyoshi đã hướng dẫn bạn ở trên.

Tuy nhiên, bạn cần chú ý là chúng ta KHÔNG THỂ sử dụng Arguments trong các hàm được tạo bởi hàm mũi tên (arrow function) JavaScript.

Lỗi Uncaught ReferenceError sẽ xảy ra khi chúng ta vô ý sử dụng Arguments trong hàm tạo bởi arrow function.

let sum_arrow_func = () => {
let sum = 0;
for (let i = 0; i < arguments.length; i++){
sum += arguments[i];
}

console.log('sum = ' + sum);
};

sum_arrow_func(1, 3, 5);

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về arguments trong javascript và việc lấy các giá trị đã truyền vào hàm rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại Creativecommons và DMCA