全局对象是JavaScript中非常重要的一类对象,它作为程序顶层(程序最顶端,不包括在任何函数之内)的上下文存在,JavaScript中的全局属性、全局函数都是通过全局对象来提供给程序的,比如

全局属性 如:undefined,Infinity,NaN

全局函数 如:isNaN(),parseInt(),eval()

构造函数 如:Date(),RegExp(),String(),Object(),Array()

全局对象 如:Math、JSON

当一段JavaScript程序开始执行的时候,JavaScript解释器便会创建一个新的全局对象,将那些初始属性定义给它,这些预定义属性也都是可枚举的。 全局对象仅仅是一个对象,而不是类,不拥有构造函数,故我们不能实例化一个新的全局对象。

我们在程序中所定义的全局变量也会以全局对象属性的形式存在,全局对象就是全局作用域的“声明上下文对象“:

var a = 1;
console.log(this.a); // 1

不使用var关键字的全局变量也是同样:

function test(){
a = 1;
};
test();
console.log(window.a); // 1

这段代码里还有个点:全局对象window内有个属性window指向它自身,于是我们可以使用window属性代替this来引用全局对象。

在代码的最顶级可以直接用关键字this来引用全局对象:

再比如NodeJs中:

全局对象的预定义属性是可枚举的,我们可以使用for in循环来查看它们

for(var attr in this){
console.log(attr + ':' + this[attr] + '\n');
}

最新文章

  1. iOS CoreData primitive accessor
  2. CenOS 7 安装wordpress
  3. 设计前沿:25个设计师向您展示 iOS 7 界面
  4. Vim tips
  5. Native App执行JS
  6. [原创]VS2013 EF6连接MySql需要几步?
  7. Mvc Model 模板的获取【学习笔记】
  8. String功能测试
  9. C++默认构造函数的一点说明
  10. Linux 命令——tee 重定向到文件并打印到屏幕
  11. TSP(Traveling Salesman Problem)-----浅谈旅行商问题(动态规划,回溯实现)
  12. .net core2.x 自动注入 Entity(实体对象到上下文)
  13. Linux命令、脚本
  14. Oracle12c 从入门到精通(第二版) 闫红岩 金松河 编著
  15. 详细解读html中的Map,area标签
  16. Flutter 相机定制
  17. android contentprovider内容提供者
  18. Linux(CentOS7)安装zip、unzip命令
  19. redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法
  20. [Linux]基本I/O重定向

热门文章

  1. centos Install Docker
  2. android viewflipper的使用 实现图片滑动效果
  3. Linux下的定时器类实现(select定时+线程)
  4. ASP.NET Session的实现原理分析
  5. A1035. Password
  6. Java读取“桌面”、“我的文档”路径的方法
  7. CodeForces - 893D 贪心
  8. python字典遍历的几种方法
  9. IntelliJ IDEA和Eclipse最常用的快捷键对应表:
  10. python---网络之邮件发送