JavaScript中的全局对象介绍

作者:junjie 时间:2024-04-22 22:41:29 

对于任何JavaScript程序,当程序开始运行时,JavaScript解释器都会初始化一个全局对象以供程序使用。这个JavaScript自身提供的全局对象的功能包括:

1.全局对象拥有一些常用的属性值。比如undefined、Infinity以及NaN。
2.全局对象拥有一些常用的属性对象。比如Math、JSON和Number对象均为该全局对象的属性。
3.全局对象提供一些全局函数供调用。比如isNaN()、isFinite()、parseInt()和eval()等。
4.全局对象提供一些全局构造器(constructor),也即全局类。比如Date()、RegExp()、String()、Object()和Array()等。


除了JS全局对象,对于运行在浏览器端的JavaScript程序,还有另一个全局对象:window。window全局对象提供了与当前窗口、页面有关的诸多属性与方法。除了这些与浏览器有关的全局属性和方法,window对象还封装了JS全局对象,并向外暴露JS全局对象的属性与接口;因此,当进行浏览器端JavaScript编程时,只需关心window全局对象即可。

对于JavaScript程序中的this,如果this不属于任何function,那么这个this就指代JS全局对象;如果是浏览器端运行的JS程序,那么这个this就指代window全局对象。

如果这个this属于某个function,那么this指代的就是调用该function的对象。若这种情况下function只是一个普通的函数,而不是某个类的方法,那么this的指代存在两种可能:

1.在ECMAScript 3标准,以及ECMAScript 5标准的非严格模式下,this指代全局对象。
2.在ECMAScript 5标准的严格模式下,this指代undefined。

根据这一特性,可以使用以下代码来判断当前是否处于严格模式:



var strict = (function(){return !this;}());


如果在JavaScript程序中创建了全局变量,那么这个全局变量会成为全局对象中的一个属性。

实验



var a = this;
console.log(a);//window object
console.log(a.outerWidth);//access window object's attribute
console.log(a.isNaN);//access JS global object's attribute

x = "test";
console.log(a.x);//access newly created global variable value

标签:JavaScript,全局对象
0
投稿

猜你喜欢

  • Python实现扫描局域网活动ip(扫描在线电脑)

    2022-10-02 02:38:52
  • Python3读取zip文件信息的方法

    2022-08-15 01:54:20
  • ASP.NET与数据库相关技巧

    2024-01-26 19:45:23
  • 浅析MySQL数据库授权原则

    2009-12-15 09:21:00
  • itchat接口使用示例

    2022-09-01 05:16:36
  • 使用jQuery简化Ajax开发

    2010-04-11 21:09:00
  • 详解使用vue脚手架工具搭建vue-webpack项目

    2024-05-21 10:29:19
  • PHP 修改SESSION的生存时间案例详解

    2023-06-11 19:44:20
  • 利用scrapy将爬到的数据保存到mysql(防止重复)

    2024-01-23 15:35:28
  • String 的扩展方法

    2008-05-12 22:36:00
  • IE6下图片下方有空隙的解决方法

    2008-08-01 18:02:00
  • 网站登录持久化Cookie方案

    2023-07-01 01:44:17
  • JS控制输入框内字符串长度

    2024-02-24 19:30:59
  • 关于textarea的直观换行

    2010-03-18 15:59:00
  • Python 如何创建一个简单的REST接口

    2022-03-07 17:03:16
  • Python数据可视化 pyecharts实现各种统计图表过程详解

    2022-04-08 17:28:37
  • python基于C/S模式实现聊天室功能

    2021-05-01 04:17:53
  • Python3实现并发检验代理池地址的方法

    2023-10-14 01:03:58
  • Python文件操作和数据格式详解(简单简洁)

    2022-12-18 21:28:01
  • golang协程与线程区别简要介绍

    2024-02-06 10:58:46
  • asp之家 网络编程 m.aspxhome.com