Hướng dẫn how to access parameters in javascript function - cách truy cập các tham số trong hàm javascript

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 là một đối tượng giống như ____ 14 có thể truy cập được bên trong các hàm chứa các giá trị của các đối số được truyền đến hàm đó. is an
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
4-like object accessible inside functions that contains the values of the arguments passed to that function.

Thử nó

Sự mô tả

Đối tượng

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 là một biến cục bộ có sẵn trong tất cả các chức năng không phải của Arrow. Bạn có thể tham khảo các đối số của hàm bên trong hàm đó bằng cách sử dụng đối tượng
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 của nó. Nó có các mục cho mỗi đối số, hàm được gọi với, với chỉ mục của mục đầu tiên tại
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
7.

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

Đối tượng

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 rất hữu ích cho các hàm được gọi với nhiều đối số hơn so với chúng được chính thức tuyên bố chấp nhận, được gọi là các hàm variadic, chẳng hạn như
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
9. Hàm ví dụ này chấp nhận bất kỳ số lượng đối số chuỗi nào và trả về đoạn dài nhất:

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}

Bạn có thể sử dụng

arguments[1] = 'new value';
0 để đếm số lượng đối số mà hàm được gọi với. Thay vào đó, nếu bạn muốn đếm có bao nhiêu tham số, một hàm được khai báo để chấp nhận, hãy kiểm tra thuộc tính
arguments[1] = 'new value';
1 của hàm đó.

Gán cho các chỉ số

Mỗi chỉ mục đối số cũng có thể được đặt hoặc chỉ định lại:

arguments[1] = 'new value';

Các hàm không nghiêm ngặt chỉ có các tham số đơn giản (nghĩa là không nghỉ, mặc định hoặc tham số bị phá hủy) sẽ đồng bộ hóa giá trị mới của các tham số với đối tượng

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 và ngược lại:

function func(a) {
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

function func2(a) {
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func2(10); // 99

Các hàm không nghiêm ngặt được truyền các tham số REST, mặc định hoặc bị phá hủy sẽ không đồng bộ hóa các giá trị mới được gán cho các tham số trong phần thân hàm với đối tượng

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3. Thay vào đó, đối tượng
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 trong các hàm không nghiêm ngặt với các tham số phức tạp sẽ luôn phản ánh các giá trị được truyền đến hàm khi hàm được gọi.

function funcWithDefault(a = 55) {
  arguments[0] = 99; // updating arguments[0] does not also update a
  console.log(a);
}
funcWithDefault(10); // 10

function funcWithDefault2(a = 55) {
  a = 99; // updating a does not also update arguments[0]
  console.log(arguments[0]);
}
funcWithDefault2(10); // 10

// An untracked default parameter
function funcWithDefault3(a = 55) {
  console.log(arguments[0]);
  console.log(arguments.length);
}
funcWithDefault3(); // undefined; 0

Đây là hành vi tương tự được thể hiện bởi tất cả các hàm chế độ nghiêm ngặt, bất kể loại tham số chúng được thông qua. Nghĩa là, việc gán các giá trị mới cho các tham số trong phần thân của hàm không bao giờ ảnh hưởng đến đối tượng

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3, cũng như không gán các giá trị mới cho các chỉ số
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 ảnh hưởng đến giá trị của các tham số, ngay cả khi hàm chỉ có các tham số đơn giản.

Lưu ý: Bạn không thể viết một chỉ thị

arguments[1] = 'new value';
7 trong phần thân của định nghĩa hàm chấp nhận các tham số nghỉ ngơi, mặc định hoặc bị phá hủy. Làm như vậy sẽ ném một lỗi cú pháp. You cannot write a
arguments[1] = 'new value';
7 directive in the body of a function definition that accepts rest, default, or destructured parameters. Doing so will throw a syntax error.

Đối số là một đối tượng giống như mảng

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 là một đối tượng giống như mảng, có nghĩa là
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3 có thuộc tính và thuộc tính
arguments[1] = 'new value';
1 được lập chỉ mục từ 0, nhưng nó không có các phương thức tích hợp của ____ 14 như
function func(a) {
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

function func2(a) {
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func2(10); // 99
2 hoặc
function func(a) {
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

function func2(a) {
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func2(10); // 99
3. Tuy nhiên, nó có thể được chuyển đổi thành một
function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
4 thực, sử dụng một trong
function func(a) {
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

function func2(a) {
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func2(10); // 99
5,
function func(a) {
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

function func2(a) {
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func2(10); // 99
6 hoặc cú pháp lan truyền.

const args = Array.prototype.slice.call(arguments);
// or
const args = Array.from(arguments);
// or
const args = [...arguments];

Đối với các trường hợp sử dụng phổ biến, sử dụng nó làm đối tượng giống như mảng là đủ, vì nó cả hai đều có thể hiểu được và có

arguments[1] = 'new value';
1 và các chỉ số số. Ví dụ,
function func(a) {
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

function func2(a) {
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func2(10); // 99
8 chấp nhận các đối tượng giống như mảng.

function midpoint() {
  return (Math.min.apply(null, arguments) + Math.max.apply(null, arguments)) / 2;
}

console.log(midpoint(3, 1, 4, 1, 5)); // 3

Đặc tính

function func(a) {
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

function func2(a) {
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func2(10); // 99
9

Tham khảo chức năng hiện đang thực hiện mà các đối số thuộc về. Cấm trong chế độ nghiêm ngặt.

arguments[1] = 'new value';
0

Số lượng đối số đã được truyền cho hàm.

function funcWithDefault(a = 55) {
  arguments[0] = 99; // updating arguments[0] does not also update a
  console.log(a);
}
funcWithDefault(10); // 10

function funcWithDefault2(a = 55) {
  a = 99; // updating a does not also update arguments[0]
  console.log(arguments[0]);
}
funcWithDefault2(10); // 10

// An untracked default parameter
function funcWithDefault3(a = 55) {
  console.log(arguments[0]);
  console.log(arguments.length);
}
funcWithDefault3(); // undefined; 0
1

Trả về một đối tượng lặp mảng mới chứa các giá trị cho mỗi chỉ mục trong

function longestString() {
  let longest = '';
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i].length > longest.length) {
      longest = arguments[i];
    }
  }
  return longest;
}
3.

Ví dụ

Xác định một hàm kết nối một số chuỗi

Ví dụ này xác định một hàm kết nối một số chuỗi. Đối số chính thức duy nhất của hàm là một chuỗi chứa các ký tự tách các mục thành Concatenate.

function myConcat(separator) {
  const args = Array.prototype.slice.call(arguments, 1);
  return args.join(separator);
}

Bạn có thể vượt qua bao nhiêu đối số tùy thích cho chức năng này. Nó trả về một danh sách chuỗi bằng cách sử dụng mỗi đối số trong danh sách:

// returns "red, orange, blue"
myConcat(', ', 'red', 'orange', 'blue');

// returns "elephant; giraffe; lion; cheetah"
myConcat('; ', 'elephant', 'giraffe', 'lion', 'cheetah');

// returns "sage. basil. oregano. pepper. parsley"
myConcat('. ', 'sage', 'basil', 'oregano', 'pepper', 'parsley');

Xác định chức năng tạo danh sách HTML

Ví dụ này xác định một hàm tạo một chuỗi chứa HTML cho một danh sách. Đối số chính thức duy nhất cho hàm là một chuỗi là

function funcWithDefault(a = 55) {
  arguments[0] = 99; // updating arguments[0] does not also update a
  console.log(a);
}
funcWithDefault(10); // 10

function funcWithDefault2(a = 55) {
  a = 99; // updating a does not also update arguments[0]
  console.log(arguments[0]);
}
funcWithDefault2(10); // 10

// An untracked default parameter
function funcWithDefault3(a = 55) {
  console.log(arguments[0]);
  console.log(arguments.length);
}
funcWithDefault3(); // undefined; 0
3 nếu danh sách không được đặt hàng (viên đạn) hoặc
function funcWithDefault(a = 55) {
  arguments[0] = 99; // updating arguments[0] does not also update a
  console.log(a);
}
funcWithDefault(10); // 10

function funcWithDefault2(a = 55) {
  a = 99; // updating a does not also update arguments[0]
  console.log(arguments[0]);
}
funcWithDefault2(10); // 10

// An untracked default parameter
function funcWithDefault3(a = 55) {
  console.log(arguments[0]);
  console.log(arguments.length);
}
funcWithDefault3(); // undefined; 0
4 nếu danh sách được đặt hàng (được đánh số). Hàm được định nghĩa như sau:

function list(type) {
  let html = `<${type}l>
  • `; const args = Array.prototype.slice.call(arguments, 1); html += args.join('
  • '); html += `
  • ${type}l>`
    ; // end list return html; }

    Bạn có thể chuyển bất kỳ số lượng đối số nào cho chức năng này và nó thêm từng đối số dưới dạng mục danh sách vào danh sách loại được chỉ định. Ví dụ:

    function longestString() {
      let longest = '';
      for (let i = 0; i < arguments.length; i++) {
        if (arguments[i].length > longest.length) {
          longest = arguments[i];
        }
      }
      return longest;
    }
    
    0

    Sử dụng loại hình với các đối số

    Toán tử

    function funcWithDefault(a = 55) {
      arguments[0] = 99; // updating arguments[0] does not also update a
      console.log(a);
    }
    funcWithDefault(10); // 10
    
    function funcWithDefault2(a = 55) {
      a = 99; // updating a does not also update arguments[0]
      console.log(arguments[0]);
    }
    funcWithDefault2(10); // 10
    
    // An untracked default parameter
    function funcWithDefault3(a = 55) {
      console.log(arguments[0]);
      console.log(arguments.length);
    }
    funcWithDefault3(); // undefined; 0
    
    5 trả về
    function funcWithDefault(a = 55) {
      arguments[0] = 99; // updating arguments[0] does not also update a
      console.log(a);
    }
    funcWithDefault(10); // 10
    
    function funcWithDefault2(a = 55) {
      a = 99; // updating a does not also update arguments[0]
      console.log(arguments[0]);
    }
    funcWithDefault2(10); // 10
    
    // An untracked default parameter
    function funcWithDefault3(a = 55) {
      console.log(arguments[0]);
      console.log(arguments.length);
    }
    funcWithDefault3(); // undefined; 0
    
    6 khi được sử dụng với
    function longestString() {
      let longest = '';
      for (let i = 0; i < arguments.length; i++) {
        if (arguments[i].length > longest.length) {
          longest = arguments[i];
        }
      }
      return longest;
    }
    
    3

    function longestString() {
      let longest = '';
      for (let i = 0; i < arguments.length; i++) {
        if (arguments[i].length > longest.length) {
          longest = arguments[i];
        }
      }
      return longest;
    }
    
    1

    Loại đối số riêng lẻ có thể được xác định bằng cách lập chỉ mục

    function longestString() {
      let longest = '';
      for (let i = 0; i < arguments.length; i++) {
        if (arguments[i].length > longest.length) {
          longest = arguments[i];
        }
      }
      return longest;
    }
    
    3:

    function longestString() {
      let longest = '';
      for (let i = 0; i < arguments.length; i++) {
        if (arguments[i].length > longest.length) {
          longest = arguments[i];
        }
      }
      return longest;
    }
    
    2

    Thông số kỹ thuật

    Sự chỉ rõ
    Thông số kỹ thuật ngôn ngữ Ecmascript # sec-argument-exotic-sơ đồ
    # sec-arguments-exotic-objects

    Tính tương thích của trình duyệt web

    Bảng BCD chỉ tải trong trình duyệt

    Xem thêm

    Chức năng JavaScript có thể chấp nhận tham số không?

    Một hàm JavaScript có thể có bất kỳ số lượng tham số. 3 hàm trên được gọi với cùng số lượng đối số với số lượng tham số. Nhưng bạn có thể gọi một hàm có ít đối số hơn số lượng tham số.. The 3 functions above were called with the same number of arguments as the number of parameters. But you can call a function with fewer arguments than the number of parameters.

    Làm thế nào để bạn truy cập các đối số trong một chức năng?

    Bạn có thể tham khảo các đối số của 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 cho mỗi đối số, hàm được gọi với, với chỉ mục của mục đầu tiên ở 0.Bạn có thể sử dụng các đối số.Độ dài để đếm xem có bao nhiêu đối số chức năng được gọi với.by using its arguments object. It has entries for each argument the function was called with, with the first entry's index at 0 . You can use arguments. length to count how many arguments the function was called with.

    Làm thế nào để các tham số chức năng hoạt động trong JavaScript?

    Các tham số, trong một cuộc 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ỉ được 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ó sẽ không thay đổi giá trị ban đầu của tham số.JavaScript arguments are passed by value: The function only gets to know the values, not the argument's locations. If a function changes an argument's value, it does not change the parameter's original value.

    Các tham số chức năng JavaScript có đi qua tham chiếu không?

    Trong mảng JavaScript và đối tượng theo sau bởi thuộc tính tham chiếu.Trong tham chiếu vượt qua, các tham số được truyền dưới dạng đối số không tạo ra bản sao của riêng mình, nó đề cập đến giá trị ban đầu để các thay đổi được thực hiện bên trong ảnh hưởng đến giá trị ban đầu.. In Pass by reference, parameters passed as an arguments does not create its own copy, it refers to the original value so changes made inside function affect the original value.