JavaScript全局对象

Global对象
Global对象(全局),可以算是JavaScript中最特别的一个对象了。因为不管你是从什么角度来看,这个对象都是不存在的。事实上,没有全局函数,或者全局变量;所有在全局定义的属性和函数,都是Global对象的属性。
1.URI编码方法
encodeURI ()和encodeURIComponent()都可以对URI进行编码,唯一的不同是,encodeURI主要是对整个URI进行编码,而encodeURIComponent只是对URI中的某一段进行编码。
EncodeURI不会对URI中的特殊字符进行编码,如冒号,下划线,#,问号;而encodeURIComponent则会对任何非标准字符进行编码。
与它们相反的是decodeURI()和decodeURIComponent()方法。

//Global对象 //URI编码方法(encodeURI,encodeURIComponent) var http = "http://www.baidu.com?w=湖北 武汉"; console.log("encodeURI:" + encodeURI(http)); //http://www.baidu.com?w=%E6%B9%96%E5%8C%97%20%E6%AD%A6%E6%B1%89 console.log("encodeURIComponent:" + encodeURIComponent(http)); //http%3A%2F%2Fwww.baidu.com%3Fw%3D%E6%B9%96%E5%8C%97%20%E6%AD%A6%E6%B1%89


2.eval()方法
这个方法接受一个参数,它会将传入的参数当做实际的ECMAScript语句来解析,然后把执行结果插入到原位置。
//eval会解析参数,并插入到原位置。 eval("console.log(sum)"); //undefined var sum = 10; eval("console.log(sum)"); //10


3.Global属性
这个方法接受一个参数,它会将传入的参数当做实际的ECMAScript语句来解析,然后把执行结果插入到原位置。

4.window对象
ECMAscript虽然没有指定如何访问Global对象,但Web浏览器都是将这个全局对象作为window对象的一部分加以实现的。因此,全局作用域中声明的所有变量和函数,就都成为了window对象的属性。
//SayHello是一个全局函数,属于window的一个属性 functionSayHello() { console.log("Hello !!!"); }function InvokeSayHello() { window.SayHello(); }

JavaScript变量声明
使用var声明的变量会自动被添加到最接近的环境中。在函数内部,最接近的环境就是函数的局部环境。在with语句中,最接近的环境就是函数环境。如果初始化变量时没有使用var声明,该变量会自动添加到全局环境。


Function类型
在JavaScript中,有意思的一点是,函数是一个对象,函数名是一个指针。
【JavaScript全局对象】以上内容来自《JavaScript高级程序设计(第3版)》

    推荐阅读