Phạm vi xác định khả năng truy cập [khả năng hiển thị] của các biến.
JavaScript có 3 loại phạm vi:
- Phạm vi khối
- Phạm vi chức năng
- Phạm vi toàn cầu
Phạm vi khối
Trước ES6 [2015], JavaScript chỉ có phạm vi và phạm vi chức năng toàn cầu.Global Scope and Function Scope.
ES6 đã giới thiệu hai từ khóa JavaScript mới quan trọng: let
và const
.
Hai từ khóa này cung cấp phạm vi khối trong JavaScript.Block Scope in JavaScript.
Các biến được khai báo bên trong một khối {} không thể được truy cập từ bên ngoài khối:
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 var
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; Let x = 2; } // x không thể được sử dụng ở đây
var x = 2;
}
// x CAN be used here
Các biến được khai báo với từ khóa var
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. LOCAL to the function.
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
Các biến được khai báo với từ khóa var
không thể có phạm vi khối.
let carName = "Volvo";
// code here CAN use carName
}
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.
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
Phạm vi địa phươngFunction Scope:
Các biến được khai báo trong hàm JavaScript, trở thành cục bộ cho hàm.
// 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}
// 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:
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.Function Scope:
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.
var carName = "Volvo"; // Function Scope
}
Phạm vi chức năng
let carName = "Volvo"; // Function Scope
}
JavaScript có phạm vi chức năng: Mỗi hàm tạo ra một phạm vi mới.
const carName = "Volvo"; // Function Scope
}
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 var
, let
và const
khá giống nhau khi được khai báo bên trong một hàm.GLOBAL.
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
// code here can use carName
Các biến được khai báo với từ khóa var
không thể có phạm vi khối.
// code here can also use carName
}
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
Phạm vi địa phươngGlobal Scope:
Các biến được khai báo trong hàm JavaScript, trở thành cục bộ cho hàm.
// 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}Globally [outside any function] have Global Scope.
// Mã ở đây không thể sử dụng Carname variables can be accessed from anywhere in a JavaScript program.
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.
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 var
, let
và const
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:GLOBAL variable.
hàm myFunction [] {& nbsp; var carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
Các biến được khai báo với từ khóa var
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.
carName = "Volvo";
}
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
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.
// 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}
// 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:
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.
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
// code here can not use window.carName
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
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.
// Mã ở đây không thể sử dụng Carname
Any function, including the window
object, can overwrite your global variables and functions.
hàm myFunction [] {& nbsp; & nbsp; let carname = "volvo"; & nbsp; // Mã ở đây có thể sử dụng 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:
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.