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和DOM Interfaces来处理HTML
Oct 09 Javascript
用函数式编程技术编写优美的 JavaScript
Nov 25 Javascript
IE6弹出“已终止操作”的解决办法
Nov 27 Javascript
jquery单击事件和双击事件冲突解决方案
Mar 02 Javascript
JS原型链怎么理解
Jun 27 Javascript
AngularJs Modules详解及示例代码
Sep 01 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
May 03 Javascript
微信小程序转化为uni-app项目的方法示例
May 22 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 Javascript
JavaScript实现鼠标经过表格某行时此行变色
Nov 20 Javascript
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
原生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代码技巧的小结
2013/06/02 PHP
php object转数组示例
2014/01/15 PHP
php操作redis缓存方法分享
2015/06/03 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python生成随机验证码的两种方法
2015/12/22 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
python实现SOM算法
2018/02/23 Python
Python中创建二维数组
2018/10/17 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
django API 中接口的互相调用实例
2020/04/01 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
单位成立周年感言
2014/01/26 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
考博导师推荐信范文
2015/03/27 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技