Hướng dẫn can you pass a variable to javascript? - bạn có thể chuyển một biến sang javascript không?

Tóm tắt: & NBSP; Hướng dẫn này giải thích cách thức hoạt động của JavaScript Pass-By-Value và cung cấp cho bạn một số ví dụ về việc truyền các giá trị nguyên thủy và tham chiếu cho một hàm.: this tutorial explains how JavaScript pass-by-value works and gives you some examples of passing primitive and reference values to a function.

Trước khi đi về phía trước với hướng dẫn này, bạn nên có kiến ​​thức tốt về các giá trị nguyên thủy và tham chiếu, và sự khác biệt giữa chúng.

JavaScript Pass-By-Value hoặc Pass-Ttef

Trong JavaScript, tất cả các đối số hàm luôn được truyền bởi giá trị. Nó có nghĩa là & nbsp; javascript sao chép các giá trị của các biến vào các đối số hàm.

Bất kỳ thay đổi nào bạn thực hiện đối với các đối số bên trong hàm không phản ánh các biến vượt qua bên ngoài hàm. Nói cách khác, những thay đổi được thực hiện đối với các đối số không được phản ánh bên ngoài hàm.

Nếu các đối số chức năng được truyền bằng tham chiếu, các thay đổi của các biến mà bạn chuyển vào hàm sẽ được phản ánh bên ngoài hàm. Điều này là không thể trong JavaScript.

Qua giá trị của các giá trị nguyên thủy

Hãy cùng xem một ví dụ sau.

function square(x) { x = x * x; return x; } let y = 10; let result = square(y); console.log(result); // 100 console.log(y); // 10 -- no change

Code language: JavaScript (javascript)

Cách tập lệnh hoạt động.

Đầu tiên, xác định hàm square() chấp nhận đối số x. Hàm gán bình phương của x cho đối số x.x. The function assigns the square of x to the x argument.

Tiếp theo, khai báo biến y và khởi tạo giá trị của nó thành 10:y and initialize its value to 10:

Hướng dẫn can you pass a variable to javascript? - bạn có thể chuyển một biến sang javascript không?

Sau đó, chuyển biến y & nbsp; vào hàm square(). Khi chuyển biến ________ 8 & nbsp; cho hàm square(), JavaScript sao chép ________ 8 & nbsp; giá trị cho biến x.

Sau đó, hàm square() thay đổi biến x. Tuy nhiên, nó không ảnh hưởng đến giá trị của biến yxy là các biến riêng biệt.x variable. However, it does not impact the value of the y variable because x and y are separate variables.

Cuối cùng, & nbsp; giá trị của biến y không thay đổi sau khi hàm square() hoàn thành.

Nếu JavaScript đã sử dụng & nbsp; từng tham chiếu, biến ________ 8 & nbsp; sẽ thay đổi thành

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 sau khi gọi hàm.

Qua giá trị của & nbsp; giá trị tham chiếu

Nó không rõ ràng để thấy rằng các giá trị tham chiếu cũng được truyền bởi các giá trị. Ví dụ:

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)

Kịch bản hoạt động như thế nào:

Đầu tiên, xác định biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5 tham chiếu một đối tượng có hai thuộc tính

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
6 và

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7:

Tiếp theo, xác định hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 chấp nhận một đối tượng

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
9 và tăng thuộc tính

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7 của đối số

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
9 lên một.

Sau đó, chuyển đối tượng

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5 cho hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8:

Trong nội bộ, công cụ JavaScript tạo tham chiếu

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
9 và làm cho tham chiếu biến này cùng một đối tượng mà các tham chiếu biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5.

Sau đó, tăng thuộc tính

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7 lên một bên trong hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 thông qua biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
9

Cuối cùng, truy cập đối tượng thông qua tham chiếu

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5:

Có vẻ như JavaScript chuyển một đối tượng bằng cách tham chiếu vì sự thay đổi đối với đối tượng được phản ánh bên ngoài hàm. Tuy nhiên, & nbsp; đây không phải là trường hợp.

Trong thực tế, khi chuyển một đối tượng cho một hàm, bạn đang chuyển tham chiếu của đối tượng đó chứ không phải đối tượng thực tế. Do đó, hàm có thể sửa đổi các thuộc tính của đối tượng thông qua tham chiếu của nó.

Tuy nhiên, bạn không thể thay đổi tham chiếu được truyền vào hàm. Ví dụ:

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)

Output:

{ name: 'John', age: 26 }

Code language: CSS (css)

Trong ví dụ này, hàm square()0 thay đổi thuộc tính

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7 thông qua đối số

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
9:

và làm cho tham chiếu

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
9 Một đối tượng khác:

Tuy nhiên, tham chiếu

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5 vẫn đề cập đến đối tượng gốc có thuộc tính

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7 thay đổi thành square()6. Nói cách khác, hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 không thay đổi tham chiếu

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5.

Nếu khái niệm này vẫn làm bạn bối rối, bạn có thể coi các đối số chức năng là các biến cục bộ.

Bản tóm tắt

  • JavaScript chuyển tất cả các đối số cho một hàm theo các giá trị.
  • Đối số chức năng là các biến cục bộ trong JavaScript.

Hướng dẫn này có hữu ích không?

Tôi có thể chuyển một giá trị hoặc một biến dưới dạng tham số trong JavaScript không?

Nó luôn luôn vượt qua giá trị (ngay cả khi giá trị đó là một tham chiếu ...). Không có cách nào để thay đổi giá trị được giữ bởi một biến được truyền dưới dạng tham số, điều này có thể xảy ra nếu JavaScript hỗ trợ truyền qua tham chiếu.There's no way to alter the value held by a variable passed as a parameter, which would be possible if JavaScript supported passing by reference.

Chúng ta có thể khai báo biến trong JavaScript không?

Luôn luôn khai báo các biến JavaScript với var, let hoặc const.Từ khóa VAR được sử dụng trong tất cả các mã JavaScript từ năm 1995 đến 2015. Từ khóa LET và const đã được thêm vào JavaScript vào năm 2015. Nếu bạn muốn mã của mình chạy trong các trình duyệt cũ hơn, bạn phải sử dụng VAR. . The var keyword is used in all JavaScript code from 1995 to 2015. The let and const keywords were added to JavaScript in 2015. If you want your code to run in older browsers, you must use var .

Bạn có thể chuyển một biến vào một chức năng?

Các tham số cho các hàm là các tham chiếu đến các đối tượng, được truyền theo giá trị.Khi bạn chuyển một biến cho một hàm, Python sẽ chuyển tham chiếu đến đối tượng mà biến đề cập đến (giá trị).Không phải là biến chính nó.Các chức năng có một bảng biến cục bộ gọi là không gian tên cục bộ.When you pass a variable to a function, python passes the reference to the object to which the variable refers (the value). Not the variable itself. Functions have a local variable table called a local namespace.

Làm thế nào để bạn vượt qua một biến?

Để truyền một giá trị bằng cách sử dụng cuộc gọi bằng tham chiếu, địa chỉ của các đối số được truyền vào các tham số chính thức. Sau đó, nó được chấp nhận bên trong phần thân hàm bên trong danh sách tham số bằng các biến đặc biệt gọi là con trỏ.the address of the arguments are passed onto the formal parameters. It is then accepted inside the function body inside the parameter list using special variables called pointers.