在JavaScript 中顶层对象的属性和全局变量的区别
在JavaScript中,顶层对象在浏览器环境中是 window 对象,顶层对象 window 的属性代表全局变量。
如果在顶层代码中声明一个变量,它将成为 window 的属性,可以通过 window 对象来读取和修改它。
举个🌰:
1 | var foo = 'hello world'; |
那么现在 foo 是作为 window 对象的一个属性存在的。这意味着我们可以使用以下两种方法来读取和修改它:
1 | window.foo // 'hello world' |
在Node.js 中顶层对象的属性和全局变量的区别
在Node.js环境中顶层对象是 global 对象,在顶层代码中声明的变量不会自动成为 global 的属性。要把变量添加到全局作用域中,必须使用 global 关键字。例如,我们可以这样
1 | global.foo = 'hello world'; |
⚠️:在Node.js环境中,为了避免意外地污染全局命名空间,实际上不推荐使用全局变量,而是尽可能使用模块导出。
总结:大功告成✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️