全局对象,全局函数,全局属性

488 阅读2分钟

全局对象

全局对象就是作用在全局作用域上的对象。在浏览器中,全局对象是window; 在node.js中,全局对象是global; 在worker中,全局对象是WorkerGlobalScope。

我们在日常开发中重点用到的全局对象是浏览器环境下的window,所以这里我们重点来看一下window对象

window全局对象

window全局对象在使用上主要有以下两点:

  1. 访问全局变量
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表示尚未为变量分配值

???在使用的时候是使用全局函数还是全局属性呢

这个具体还是要看全局函数和全局属性的功能,根据需求来进行选择