全局对象
全局对象就是作用在全局作用域上的对象。在浏览器中,全局对象是window; 在node.js中,全局对象是global; 在worker中,全局对象是WorkerGlobalScope。
我们在日常开发中重点用到的全局对象是浏览器环境下的window,所以这里我们重点来看一下window对象
window全局对象
window全局对象在使用上主要有以下两点:
- 访问全局变量
var foo = 'foobar';
foo === window.foo; // true
所有的全局变量都是储存在全局对象上的,所以可以直接通过window访问。我们一般也会把window给省略,直接访问全局变量。 2. 调用全局函数
function greeting() {
console.log('Hi!');
}
window.greeting(); // Hi;
全局函数也是储存在全局对象上的,因此我们在使用的时候可以通过window去调用全局函数。因为在浏览器环境默认全局对象即使window,因此在调用全局函数的时候其实是省了前面的window属性。
全局函数
全局函数可以直接调用,不需要在调用时指定所属对象,执行结束后会将结果直接返回给调用者 全局函数具有以下几种:
| 属性 | 描述 |
|---|---|
| decodeURI() | 解码URI |
| decodeURIComponent() | 解码URI组件 |
| encodeURI() | 对URI进行编码 |
| encodeURIComponent() | 对URI组件进行编码 |
| escape() | 已废弃,现在使用的是新的encodeURI()或encodeURIComponent() |
| eval() | 计算字符串并执行它,就好像它是脚本代码一样 |
| isFinite() | 确定值是否为有限的合法数字 |
| isNaN() | 确定值是否为非法数字 |
| Number() | 将对象的值转换为数字 |
| parseFloat() | 解析字符串并返回浮点数 |
| parseInt() | 解析一个字符串并返回一个整数 |
| String() | 将对象的值转换为字符串 |
| unescape() | 已废弃,现在使用的是新的decodeURI()或decodeURIComponent() |
全局属性
全局属性会返回一个简单值,这些值没有自己的属性和方法。 常见的全局属性具有以下几种:
| 属性 | 描述 |
|---|---|
| Infinity | 表示正/负无穷大的数值 |
| NaN | 'Not-a-Number'值 |
| undefined | 表示尚未为变量分配值 |
???在使用的时候是使用全局函数还是全局属性呢
这个具体还是要看全局函数和全局属性的功能,根据需求来进行选择