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 25 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
Oct 11 Javascript
Javascript基础教程之变量
Jan 18 Javascript
JS动态改变表格边框宽度的方法
Mar 31 Javascript
javascript表单验证大全
Aug 12 Javascript
javascript下拉列表菜单的实现方法
Nov 18 Javascript
JS结合bootstrap实现基本的增删改查功能
Jul 22 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
checkbox在vue中的用法小结
Nov 13 Javascript
js实现窗口全屏示例详解
Sep 17 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
Oct 17 Javascript
vue中配置scss全局变量的步骤
Dec 28 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
PHP异常处理Exception类
2015/12/11 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
python实现Windows电脑定时关机
2018/06/20 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
浅析Python 责任链设计模式
2020/09/11 Python
详解Django中异步任务之django-celery
2020/11/05 Python
python的数学算法函数及公式用法
2020/11/18 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
个人求职信格式范文
2015/03/20 职场文书
售后服务质量承诺书
2015/04/29 职场文书
学校元旦晚会开场白
2015/05/29 职场文书