在 JavaScript 中,全局对象 是一个特殊的对象,它在任何地方都可以访问,并且包含了所有全局变量和函数。
不同环境的全局对象
浏览器环境中的全局对象
在浏览器环境中,全局对象是 window。它包含了所有全局变量、全局函数、以及浏览器提供的各种 API。
console.log(window); // 输出全局对象 window
Node.js 环境中的全局对象
在 Node.js 环境中,全局对象是 global。它包含了所有全局变量、全局函数、以及 Node.js 提供的各种 API。
console.log(global); // 输出全局对象 global
通用全局对象
为了在不同环境中都能访问全局对象,可以使用 globalThis,这是一个标准化的全局对象引用。
console.log(globalThis); // 在浏览器中输出 window,在 Node.js 中输出 global
全局变量
全局变量 是全局对象的属性,包括值、方法和对象。
全局变量是全局作用域中的变量,在任何地方都可以直接使用,不需要显式写出全局对象,例如 parseInt 和 window.parseInt 是相同的函数。
在全局作用域中使用 var 声明的变量和声明的函数会自动成为全局对象的属性。
var globalVar = 42;
function globalFunc() {
return 'Hello, World!';
}
console.log(window.globalVar); // 在浏览器中输出 42
console.log(window.globalFunc()); // 在浏览器中输出 'Hello, World!'
内置全局变量
全局值属性
全局对象包含了一些内置的属性,如 undefined、Infinity、NaN 等。
内置对象
全局对象包含了一些内置对象,如 Math、Date、String、Number 等。
console.log(Math.PI); // 输出 3.141592653589793
console.log(Date.now()); // 输出当前时间的时间戳
全局函数
全局对象包含了一些内置的全局函数,如 parseInt、parseFloat、isNaN、isFinite 等。
console.log(parseInt('123')); // 输出 123
console.log(isNaN('abc')); // 输出 true
浏览器特有的属性和方法
在浏览器环境中,全局对象包含了一些特有的属性和方法,如 alert、document、location 等。
alert('Hello, World!'); // 弹出一个警告框
console.log(document.title); // 输出当前文档的标题
console.log(location.href); // 输出当前页面的 URL
参考
JavaScript 标准内置对象
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects
window
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/window