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字典探测用户名工具
Oct 05 Javascript
验证用户是否修改过页面的数据的实现方法
Sep 26 Javascript
js 可拖动列表实现代码
Dec 13 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
Mar 28 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
js实现九宫格图片半透明渐显特效的方法
Feb 16 Javascript
轻松实现jquery手风琴效果
Jan 14 Javascript
微信小程序 loading 详解及实例代码
Nov 09 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
Nov 25 Javascript
详解JavaScript的内置对象
Dec 07 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
微信小程序 bindtap 传参的实例代码
Feb 21 Javascript
原生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
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python 读写文件的操作代码
2018/09/20 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
Python requests上传文件实现步骤
2020/09/15 Python
金士达面试非笔试
2012/03/14 面试题
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
小学教师评语大全
2014/04/23 职场文书
志愿者活动总结
2014/04/28 职场文书
投标诚信承诺书
2014/05/26 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
忠诚教育心得体会
2014/09/03 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
村主任当选感言
2015/08/01 职场文书
保姆聘用合同
2015/09/21 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers