JavaScript中的全局对象介绍


Posted in Javascript onJanuary 01, 2015

对于任何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 相关文章推荐
JavaScript判断两种格式的输入日期的正确性的代码
Mar 25 Javascript
Sample script that deletes a SQL Server database
Jun 16 Javascript
JavaScript CSS菜单功能 改进版
Dec 20 Javascript
IE Firefox 使用自定义标签的区别
Oct 15 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
May 31 Javascript
11款新鲜的jQuery插件[附所有demo下载]
Jan 24 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
Feb 22 Javascript
深入解析JavaScript中的变量作用域
Dec 06 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
解决bootstrap下拉菜单点击立即隐藏bug的方法
Jun 13 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
Jan 24 jQuery
原生javascript获取元素样式
Dec 31 #Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 #Javascript
jQuery中:last-child选择器用法实例
Dec 31 #Javascript
jQuery中:nth-child选择器用法实例
Dec 31 #Javascript
jQuery中:first-child选择器用法实例
Dec 31 #Javascript
jQuery中复合属性选择器用法实例
Dec 31 #Javascript
javascript实现左右控制无缝滚动
Dec 31 #Javascript
You might like
IStream与TStream之间的相互转换
2008/08/01 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
JavaScript效率调优经验
2009/06/04 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
浅析TypeScript 命名空间
2020/03/19 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
建筑系毕业生自我鉴定
2014/01/24 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
解析Java中的static关键字
2021/06/14 Java/Android