本文共 759 字,大约阅读时间需要 2 分钟。
全局作用域是直接编写在<script>标签中的JavaScript代码的运行环境。全局作用域中的变量都是全局变量,可以在页面的任意部分访问。页面启动时,全局作用域创建,页面关闭时,全局作用域销毁。
window是全局作用域中的一个对象,代表浏览器窗口,是浏览器创建的。我们可以直接使用window对象。全局作用域中创建的变量会成为window对象的属性。
变量的声明会提前,无论变量声明的位置在哪里,声明都会在所有代码执行前完成。
var a = 123;无论a的声明位置在哪里,都会在所有代码执行前被声明。var声明变量,如a = 123;,则变量会被声明,但不会提前声明。函数有两种定义方式:
function hanshu1() {})会在所有代码执行前被定义,可以提前调用。var定义函数(如var hanshu2 = function() {})时,函数不会提前声明。每次调用函数时,函数作用域都会创建并销毁。在函数作用域中,变量的查找会依次从自身作用域向上查找,最终寻找到全局变量。
注意:
window对象访问全局变量:window.a。eval或new Function时,要特别注意变量的声明和作用域。通过以上理解,可以更好地掌握JavaScript中变量和函数的作用域原理,避免变量污染问题。
转载地址:http://fabmz.baihongyu.com/