全局作用域

那么什么叫做全局作用域呢?

客户端JavaScript代码都在全局上下文环境中运行,window对象提供了全局作用域。由于window对象是全局对象,因此所有的全局变量都被视为该对象的属性。

例一:在脚本中自定义一个变量或函数时,可以通过window对象访问它们。

var a="windows.a";   //全局变量

function f()                 //全局函数

{

alert(a);

}

alert(window.a);         //引用window对象的属性a,返回字符串”window.a“

window.f();               //调用window对象的方法f(),返回字符串”window.a“

例二:

定义全局变量与在window对象上直接定义属性还是有一点不同:全局变量不能通过delete运算符删除,而直接在window对象上的定义的属性可以被删除。

var a="a";

window.b="window.b";

c="c"

alert(delete window.a)  //返回false,删除失败

alert(delete window.b)  //返回true,删除成功

alert(delete window.c)   //返回true,删除成功

alert(window.b)

使用var语句声明全局变量,window会为这个属性定义一个名为"configurable"的特性,这个特性的值被设置为false,这样该属性就不可以通过delete运算符删除。

【注意】直接访问未声明的变量,JavaScript会抛出异常,但是通过window对象进行访问,可以判断未声明的变量是否存在

alert(window.a)//返回undefined

alert(a);

猜你喜欢

转载自www.cnblogs.com/yourdid/p/11892208.html