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版)》
推荐阅读
- 事件代理
- 数组常用方法一
- jQuery插件
- iOS面试题--基础
- 口红选得好,对象不愁找......
- java静态代理模式
- Python-类和对象
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历