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 来操作字符串(一些字符串函数)
Feb 15 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
Oct 09 Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
Sep 19 Javascript
javascript实现五星评分功能
Nov 10 Javascript
JavaScript弹出对话框的三种方式
Mar 23 Javascript
遍历json获得数据的几种方法小结
Jan 21 Javascript
Bootstrap table简单使用总结
Feb 15 Javascript
原生JS 购物车及购物页面的cookie使用方法
Aug 21 Javascript
详解使用webpack打包编写一个vue-toast插件
Nov 08 Javascript
JS使用setInterval计时器实现挑战10秒
Nov 08 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+APACHE实现用户论证的方法
2006/10/09 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
Vue程序调试的方法
2019/06/17 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
常见python正则用法的简单实例
2016/06/21 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
windows下python安装pip方法详解
2020/02/10 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
python dict乱码如何解决
2020/06/07 Python
python中pivot()函数基础知识点
2021/01/03 Python
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
幼师自荐信范文
2013/10/06 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
乔迁之喜主持词
2014/03/27 职场文书
小班幼儿评语大全
2014/04/30 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python
Nginx报404错误的详细解决方法
2022/07/23 Servers