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 相关文章推荐
一些常用的JS功能函数代码
Jun 23 Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 Javascript
关于function类中定义变量this的简单说明
May 28 Javascript
angularJS深拷贝详解
Mar 23 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
javascript cookie的基本操作(添加和删除)
Jul 24 Javascript
Vue中建立全局引用或者全局命令的方法
Aug 21 Javascript
React Native使用Modal自定义分享界面的示例代码
Oct 31 Javascript
vue2.0安装style/css loader的方法
Mar 14 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
小程序实现左滑删除效果
Jul 25 Javascript
webpack是如何实现模块化加载的方法
Nov 06 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日历[测试通过]
2008/03/27 PHP
ThinkPHP php 框架学习笔记
2009/10/30 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
JS实现拖动模糊框特效
2020/08/25 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
python网络编程学习笔记(一)
2014/06/09 Python
Python脚本实现代码行数统计代码分享
2015/03/10 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
Python多继承顺序实例分析
2018/05/26 Python
Windows下python3.7安装教程
2018/07/31 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
使用python实现学生信息管理系统
2021/02/25 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
庆中秋节主题活动方案
2014/02/03 职场文书
地理科学专业自荐信
2014/09/01 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python