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 相关文章推荐
JQuery获取当前屏幕的高度宽度的实现代码
Jul 12 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
Mar 28 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
js的.innerHTML = ""IE9下显示有错误的解决方法
Sep 16 Javascript
js动态改变select选择变更option的index值示例
Jul 10 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
jQuery获取checkboxlist的value值的方法
Sep 27 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
Vue搭建后台系统需要注意的问题
Nov 08 Javascript
微信小程序实现多图上传
Jun 19 Javascript
如何通过Proxy实现JSBridge模块化封装
Oct 22 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
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
jQuery位置选择器用法实例分析
2019/06/28 jQuery
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
py中的目录与文件判别代码
2008/07/16 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
简单了解python模块概念
2018/01/11 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
python线程join方法原理解析
2020/02/11 Python
基于Python实现天天酷跑功能
2021/01/06 Python
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
董事长职责范文
2013/11/08 职场文书
小学生期末评语
2014/04/21 职场文书
驻村工作先进事迹
2014/08/14 职场文书
社团活动总结格式
2014/08/29 职场文书
通用员工手册范本
2015/05/14 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python