Có rất nhiều cách để đi xung quanh điều này mà không cần sử dụng Globals.
Ngoài ra, bạn có nghĩa là gì khi "mà không tạo ra biến đổi toàn cầu"? Bạn muốn tránh gây ô nhiễm không gian tên toàn cầu hoặc bạn không muốn biến của bạn có sẵn trong tất cả các chức năng của bạn?
You want to avoid polluting the global namespace or you just don't want your variable to be available in all of your functions?
Đây là cách chuyển giá trị từ một trong các chức năng của bạn sang chức năng khác:
function a[]{
var hello = "world";
return hello;
}
function b[]{
var result = a[];
console.log[result];
}
Như bạn có thể thấy hàm a [] trả về biến hello
với giá trị "thế giới". Bây giờ nếu bạn gọi hàm b [], nó sẽ lưu trữ giá trị trả về của A [] trong một biến có tên result
và sau đó đăng nhập vào bảng điều khiển.
Now if you call function b[] it
will store a[]'s return value in a variable called result
and then log it to the console.
Một tùy chọn khác là sử dụng các tham số [đôi khi được gọi là đối số] trong các chức năng của bạn:
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
Trong trường hợp này nếu bạn sẽ gọi hàm A [], nó sẽ gọi ngay hàm b [], vượt qua biến xin chào, vì vậy b [] sẽ ghi "thế giới". Tất nhiên, aproach sau không phải lúc nào cũng là một lựa chọn tốt, tức là bạn chỉ đơn giản là không muốn chức năng đầu tiên của mình gọi một chức năng khác. Trong trường hợp đó, bạn có thể làm như sau:
Of course the latter aproach is not always a good choice, i.e. you simply don't want your first function to call another one. In that case you can do the
following:
function a[]{
var hello = "world";
return hello;
}
function b[arg]{
console.log[arg];
}
Sau đó, gọi hàm b [] là: b[a[]];
Theo cách này, bạn sẽ chuyển giá trị trả về của hàm A [] làm đối số cho hàm b [].
This way you'll pass function a[]'s return value as an argument to function b[].
Hy vọng rằng điều này đã xóa hầu hết các câu hỏi của bạn. :]
Chúng ta có thể khai báo biến bên ngoài chức năng không? Trong Python và hầu hết các ngôn ngữ lập trình, các biến được khai báo bên ngoài một hàm được gọi là các biến toàn cầu. Bạn có thể truy cập các biến như vậy bên trong và bên ngoài một hàm, vì chúng có phạm vi toàn cầu. Biến X trong mã trên được khai báo bên ngoài hàm: x = 10. Làm thế nào để bạn sử dụng các biến cục bộ bên ngoài một hàm? Các biến cục bộ không thể được truy cập bên ngoài khai báo chức năng. Biến toàn cầu và biến cục bộ có thể có cùng tên mà không ảnh hưởng đến nhau. JavaScript không cho phép phạm vi cấp khối bên trong khung {}.:
function one[]{
var a;
function two[]{
a = 10;
return a;
}
return two[];
}
function one[]{
var a;
function two[]{
a = 100;
console.log["Inner function"]
return a;
}
return two[];
}
var res = one[];
console.log[res]
Làm thế nào để bạn toàn cầu hóa một biến trong JavaScript?
Một biến toàn cầu của JavaScript được khai báo bên ngoài hàm hoặc được khai báo với đối tượng cửa sổ. Nó có thể được truy cập từ bất kỳ chức năng nào ..hàm m [] {.
var global = "Global Variable"; //Define global variable outside of function
function setGlobal[]{
global = "Hello World!";
};
setGlobal[];
console.log[global]; //This will print out "Hello World"
cửa sổ. value = 100; // khai báo biến toàn cầu theo đối tượng cửa sổ ..
hàm n [] {. The All JS Examples codes are tested on the Firefox browser and the Chrome browser.
cảnh báo [cửa sổ. value]; // truy cập biến toàn cầu từ các chức năng khác ..Windows 10
Để truy cập một biến bên ngoài một chức năng trong JavaScript, có thể truy cập biến của bạn từ bên ngoài chức năng. Đầu tiên, khai báo nó bên ngoài chức năng, sau đó sử dụng nó bên trong hàm.
Bạn có thể truy cập các biến được khai báo bên trong một hàm từ bên ngoài một hàm. Biến chỉ thuộc về phạm vi chức năng, không phải là phạm vi toàn cầu.
Các biến toàn cầu trong HTML
Với JavaScript, phạm vi toàn cầu là môi trường JavaScript.
- Trong HTML, phạm vi toàn cầu là đối tượng cửa sổ.
- Các biến toàn cầu được xác định với từ khóa
2 thuộc về đối tượng cửa sổ:function a[]{ var hello = "world"; b[hello]; } function b[arg]{ console.log[arg]; }
- Các biến toàn cầu được xác định với từ khóa
0 không thuộc về đối tượng cửa sổ:function a[]{ var hello = "world"; b[hello]; } function b[arg]{ console.log[arg]; }
Hãy để Carname = "Volvo"; // Mã ở đây không thể sử dụng Window.Carname
Cảnh báoGlobal Scope and Function Scope.
Không tạo ra các biến toàn cầu trừ khi bạn có ý định.
Các biến toàn cầu của bạn [hoặc hàm] của bạn có thể ghi đè các biến [hoặc hàm] của Window Window. Bất kỳ chức năng nào, bao gồm đối tượng cửa sổ, có thể ghi đè lên các biến và hàm toàn cầu của bạn.Block Scope in JavaScript.
Tuổi thọ của các biến JavaScript
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
let x = 2;
}
// x can NOT be used here
Các biến được khai báo với từ khóa
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
2 không thể có phạm vi khối.Các biến được khai báo bên trong một khối {} có thể được truy cập từ bên ngoài khối.
Thí dụ
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
var x = 2;
}
// x CAN be used here
Phạm vi địa phương
Các biến được khai báo trong hàm JavaScript, trở thành cục bộ cho hàm. LOCAL to the function.
Thí dụ
// Mã ở đây không thể sử dụng Carname
hàm myFunction [] {& nbsp; & nbsp; let carname = "volvo"; & nbsp; // Mã ở đây có thể sử dụng carname}
let carName = "Volvo";
// code here CAN use carName
}
// Mã ở đây không thể sử dụng Carname
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:Function Scope:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.
Các biến cục bộ được tạo khi một hàm bắt đầu và xóa khi hàm được hoàn thành.
Phạm vi chức năng
JavaScript có phạm vi chức năng: Mỗi hàm tạo ra một phạm vi mới.
Các biến được xác định bên trong một hàm không thể truy cập [có thể nhìn thấy] từ bên ngoài hàm.
Các biến được khai báo với
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
2, function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
0 và function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
1 khá giống nhau khi được khai báo bên trong một hàm.Tất cả đều có phạm vi chức năng:Function Scope:
hàm myFunction [] {& nbsp; var carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
var carName = "Volvo"; // Function Scope
}
hàm myFunction [] {& nbsp; Đặt carname = "Volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
let carName = "Volvo"; // Function Scope
}
hàm myFunction [] {& nbsp; const carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
const carName = "Volvo"; // Function Scope
}
Các biến JavaScript toàn cầu
Một biến được tuyên bố bên ngoài một chức năng, trở thành toàn cầu.GLOBAL.
Thí dụ
Hãy để Carname = "Volvo"; // Mã ở đây có thể sử dụng Carname
// code here can use carName
function myFunction [] {// mã ở đây cũng có thể sử dụng carname}
// code here can also use carName
}
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:Global Scope:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.
Các biến cục bộ được tạo khi một hàm bắt đầu và xóa khi hàm được hoàn thành.Globally [outside any function] have Global Scope.
Phạm vi chức năng variables can be accessed from anywhere in a JavaScript program.
JavaScript có phạm vi chức năng: Mỗi hàm tạo ra một phạm vi mới.
Các biến được xác định bên trong một hàm không thể truy cập [có thể nhìn thấy] từ bên ngoài hàm.Global Scope:
Các biến được khai báo với
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
2, function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
0 và function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
1 khá giống nhau khi được khai báo bên trong một hàm.Tất cả đều có phạm vi chức năng:
hàm myFunction [] {& nbsp; var carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
hàm myFunction [] {& nbsp; Đặt carname = "Volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
hàm myFunction [] {& nbsp; const carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
Các biến JavaScript toàn cầu
Một biến được tuyên bố bên ngoài một chức năng, trở thành toàn cầu.
Hãy để Carname = "Volvo"; // Mã ở đây có thể sử dụng CarnameGLOBAL variable.
function myFunction [] {// mã ở đây cũng có thể sử dụng carname}
Thí dụ
Một biến toàn cầu có phạm vi toàn cầu:
Tất cả các tập lệnh và chức năng trên một trang web có thể truy cập nó. & NBSP;
Phạm vi toàn cầu
carName = "Volvo";
}
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.
Các biến cục bộ được tạo khi một hàm bắt đầu và xóa khi hàm được hoàn thành.
Phạm vi chức năng
JavaScript có phạm vi chức năng: Mỗi hàm tạo ra một phạm vi mới.
Các biến được xác định bên trong một hàm không thể truy cập [có thể nhìn thấy] từ bên ngoài hàm.
Các biến được khai báo với
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
2, function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
0 và function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
1 khá giống nhau khi được khai báo bên trong một hàm.Tất cả đều có phạm vi chức năng:
Thí dụ
hàm myFunction [] {& nbsp; var carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
// code here can not use window.carName
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.
Any function, including the window
object, can overwrite your global variables and functions.
Các biến cục bộ được tạo khi một hàm bắt đầu và xóa khi hàm được hoàn thành.
Phạm vi chức năng
JavaScript có phạm vi chức năng: Mỗi hàm tạo ra một phạm vi mới.
Các biến được xác định bên trong một hàm không thể truy cập [có thể nhìn thấy] từ bên ngoài hàm.
Các biến được khai báo với function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
2, function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
0 và function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
1 khá giống nhau khi được khai báo bên trong một hàm.
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
function a[]{
var hello = "world";
b[hello];
}
function b[arg]{
console.log[arg];
}
Tất cả đều có phạm vi chức năng: