Sách tham khảo toàn cục JavaScript

Các thuộc tính và hàm toàn cục JavaScript có thể được sử dụng với tất cả các đối tượng JavaScript tích hợp.

Thuộc tính toàn cục JavaScript

Thuộc tính Mô tả
Infinity Biểu thị giá trị vô cùng lớn hoặc vô cùng nhỏ.
NaN Giá trị "Not-a-Number" ("Không phải số")
undefined Biểu thị biến chưa được gán giá trị.

Hàm toàn cục JavaScript

Hàm Mô tả
decodeURI() Giải mã URI.
decodeURIComponent() Giải mã các thành phần URI.
encodeURI() Mã hóa URI.
encodeURIComponent() Mã hóa các thành phần URI.
escape() Đã bỏ hỗ trợ trong phiên bản 1.5.Vui lòng sử dụng encodeURI() hoặc encodeURIComponent() Thay thế.
eval() Đánh giá chuỗi và thực thi nó như mã script.
isFinite() Xác định giá trị có phải là số hợp lệ có hạn không.
isNaN() Xác định giá trị có phải là số không hợp lệ không.
Number() Chuyển đổi giá trị của đối tượng thành số.
parseFloat() Phân tích chuỗi và trả về số thập phân.
parseInt() Phân tích chuỗi và trả về số nguyên.
String() Chuyển đổi giá trị của đối tượng thành chuỗi.
unescape() Đã bỏ hỗ trợ trong phiên bản 1.5.Vui lòng sử dụng decodeURI() hoặc decodeURIComponent() Thay thế.

Hàm hay phương pháp?

Việc gọi các hàm toàn cục trong danh sách trên thay vì các phương pháp toàn cục có ý nghĩa, vì các hàm là gọi toàn cục, không phải của bất kỳ đối tượng nào.

Bất kể điều đó, bạn vẫn có thể gọi các phương pháp này, vì chúng là phương pháp của mục tiêu toàn cục của môi trường chạy của chúng. Trong trình duyệt web, mục tiêu toàn cục là cửa sổ trình duyệt. Vậy isNaN() thực chất là một phương pháp của cửa sổ: window.isNaN().

Mô tả mục tiêu toàn cục

Mục tiêu đối tượng là đối tượng được định nghĩa sẵn, làm đại diện cho các hàm và thuộc tính toàn cục của JavaScript. Bằng cách sử dụng mục tiêu toàn cục, bạn có thể truy cập tất cả các đối tượng, hàm và thuộc tính được định nghĩa sẵn khác. Mục tiêu toàn cục không phải là thuộc tính của bất kỳ đối tượng nào, vì vậy nó không có tên.

Trong mã JavaScript cấp cao, có thể sử dụng từ khóa this để trỏ đến đối tượng toàn cục. Tuy nhiên, thường không cần phải làm như vậy vì đối tượng toàn cục là đầu của chuỗi khu vực, điều này có nghĩa là tất cả các biến và tên hàm không xác định sẽ được tra cứu như thuộc tính của đối tượng này. Ví dụ, khi mã JavaScript tham chiếu đến hàm parseInt(), nó tham chiếu đến thuộc tính parseInt của đối tượng toàn cục. Đối tượng toàn cục là đầu của chuỗi khu vực cũng có nghĩa là tất cả các biến được khai báo ở cấp cao nhất trong mã JavaScript sẽ trở thành thuộc tính của đối tượng toàn cục.

Đối tượng toàn cục chỉ là một đối tượng, không phải là lớp. Không có hàm tạo và không thể tạo một đối tượng toàn cục mới.

Khi mã JavaScript được chèn vào một môi trường đặc biệt, đối tượng toàn cục thường có các thuộc tính đặc trưng cho môi trường. Thực tế, tiêu chuẩn ECMAScript không quy định loại đối tượng toàn cục, các thực hiện hoặc JavaScript chèn đều có thể sử dụng đối tượng nào đó như đối tượng toàn cục, miễn là đối tượng đó định nghĩa các thuộc tính và hàm cơ bản được liệt kê ở đây. Ví dụ, trong các thực hiện của JavaScript cho phép viết kịch bản Java thông qua LiveConnect hoặc các công nghệ liên quan, đối tượng toàn cục được赋予 các thuộc tính java và Package được liệt kê ở đây cũng như phương thức getClass(). Trong JavaScript của người dùng, đối tượng toàn cục là đối tượng Window, biểu thị cho cửa sổ trình duyệt web cho phép chạy mã JavaScript.

Ví dụ

Trong ngôn ngữ cốt lõi của JavaScript, các thuộc tính tiền định của đối tượng toàn cục đều không thể liệt kê, tất cả có thể liệt kê tất cả các biến toàn cục ẩn hoặc được khai báo rõ ràng bằng lệnh for/in, như sau:

var variables = "";
for (var name in this) 
{
variables += name + "<br />";
}
document.write(variables);

Thử ngay