Global对象

不属于任何其他对象的属性和方法,最终都是Global对象的属性和方法。如 parseFloat( )、parseInt( )、escape( )、unescape( )、isFinite( )、isNaN( )、eval( )、encodeURI()和 encodeURIComponent(),实际上全都是 Global对象的方法。

所有在全局作用域中定义的属性和函数,也都是Global对象的属性和方法。

Global对象的属性

Global对象的属性包括undefined、NaN和Infinity三个特殊值,以及全部的原生构造函数。

window对象

ECMAScript 没有指出如何直接访问 Global 对象,但浏览器都是将Global对象作为window 对象的一部分加以实现的。因此,在全局作用域中声明的所有变量和函数,就都成为了 window对象的属性。

?

1

2

3

4

5

var color = "red";

function sayColor(){

    alert(window.color);   //通过window.color来访问color变量

}

window.sayColor();  //"red" //通过window.saycolor()来调用函数。

Global对象和Window对象的对比

*  window对象是相对于web浏览器而言的*,它并不是ECMAScripta规定的内置对象,内置对象的定义是:“由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。”window对象是宿主对象也就是在一定的环境中才会生成的对象(这里也就是指浏览器)。

而Global对象是在任何环境中都存在的。

全局函数和window对象的函数不一样。全局函数不属于任何一个内置对象。

跟继承没有关系,可以认为浏览器默认提供使用的对象,都放到了Global对象中,而window对象又恰好就是这个Global对象。实际上,在浏览器的内部实现中,隐藏了真正的Global对象,而把window对象作为了Global对象的替身。一切对Global对象的操作(间接操作),都会映射到window对象上,反之亦然。这样window对象就成了Global对象的替身。而window对象同时又作为Global对象的一个属性。这样,真正的Global对象就被雪藏了。

全局对象

全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。全局对象不是任何对象的属性,所以它没有名称。(之所以选择Global作为这个参考页的标题,只是为了方便 组织,并不是说全局对象名为“Global”)。

在顶层 JavaScript 代码中,可以用关键字 this 引用全局对象。但通常不必用这种方式引用全局对象,因为全局对象是作用域链的头,这意味着所有非限定性的变量和函数名都会作为该对象的属性来查询。例如,当JavaScript 代码引用 parseInt() 函数时,它引用的是全局对象的 parseInt 属性。全局对象是作用域链的头,还意味着在顶层 JavaScript 代码中声明的所有变量都将成为全局对象的属性

全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。

在 JavaScript 代码嵌入一个特殊环境中时,全局对象通常具有环境特定的属性。实际上,ECMAScript 标准没有规定全局对象的类型,JavaScript 的实现或嵌入的 JavaScript 都可以把任意类型的对象作为全局对象,只要该对象定义了这里列出的基本属性和函数。例如,在允许通过 LiveConnect 或相关的技术来脚本化 Java 的 JavaScript 实现中,全局对象被赋予了这里列出的 java 和 Package 属性以及 getClass() 方法。而在客户端 JavaScript 中,全局对象就是 Window 对象,表示运行JavaScript 代码的 Web 浏览器窗口。

可以用for/in循环列出所有隐式或显式声明的全局变量:

?

1

2

3

4

5

6

7

var variables = "";

var aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = 123; //创建一个全局变量

for (var name in this) {

variables += name + "

";

}

document.write(variables);

全局对象、全局函数和全局属性

全局对象定义了引用JavaScript所有预 定义对象的属性。除了Math外,这些属性都是定义类的构造函数,Math引用的对象不是构造函数。

全局对象是一个对象,而不是类。下面列出的全局函数不是任何对象的方法,它们的参考条目出现在函数名下。例如,在“parseInt()”下可以找到parseInt()函数的详细信息,在“Global.parseInt()”下就无法找到该函数的详细信息。

全局对象不是一个类,所以下面的全局属性在自己名称下有单独的参考条目。也就是说,在“undefined”名下可以找到undefined属性的详细信息,而不是在“Global.undefined”下寻找。注意,所有顶层变量也都是全局对象的属性。

window对象的alert()、promit()、prompt()、open()、setTimeout()、document、location等属性和方法是依赖于宿主环境的,他们都不是全局函数和属性。

Global对象和window对象相关推荐

  1. day04【JS高级】BOM对象、Window对象、二种定时器、 Location对象、DOM对象、DOM获取元素、DOM操作内容、DOM操作属性、DOM操作样式、DOM操作元素(标签)、 正则表达式

    回顾 1. js基础语法运算符:算数运算符可以与字符串进行数学运算,js底层进行隐式转换比较运算符:===(恒等) 特点,比较类型+内容流程控制语句if判断条件表达式:1)布尔2)数值:非0为真3)字 ...

  2. JavaScript 基础(三) - Date对象,RegExp对象,Math对象,Window 对象,History 对象,Location 对象,DOM 节点...

    Date对象 创建Date对象 //方法1:不指定参数var date_obj = new Date();alert(date_obj.toLocaleString())//方法2:参数为日期字符串v ...

  3. javascript对象之window对象详解

    frames 表示当前窗口中所有frame对象的数组 status 表示浏览器的状态行信息 defaultstatus 表示浏览器的状态行信息 history 表示当前窗口的历史记录,这可以引用在网页 ...

  4. JavaScript权威指南--window对象

    知识要点 window对象及其客户端javascript所扮演的核心角色:它是客户端javascript程序的全局对象.本章介绍window对象的属性和方法,这些属性定义了不同的API,但是只有一部分 ...

  5. BOM之window对象

    1.widonws对象介绍 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta c ...

  6. js中WINDOW对象

    全栈工程师开发手册 (作者:栾鹏) js系列教程6-BOM操作全解 js中WINDOW对象 BOM的核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一 ...

  7. 《JavaScript高级程序设计》读书笔记 -12.1 window对象

    <JavaScript高级程序设计>读书笔记 -12.1 window对象 12.1 window对象 12.1.1 Global作用域 12.1.2 窗口关系[不是很懂] 12.1.3 ...

  8. javascript之window对象

    window :window对象是BOM中所有对象的核心,除了是BOM中所有对象的父对象外,还包含一些窗口控制函数. 1.全局的window对象 JavaScript中的任何一个全局函数或变量都是wi ...

  9. JavaScript 基础(十三):Window对象

    2019独角兽企业重金招聘Python工程师标准>>> 一. window对象简介 window 对象 是 BOM(浏览器对象模型) 的核心,window对象指当前的浏览器窗口. w ...

最新文章

  1. 最通俗的机器学习介绍
  2. CSU2188: Substring
  3. 数据备份_这5种数据备份方式你全都了解吗?
  4. Linux学习记录-7
  5. STL源码剖析 数值算法 accumulate | adjacent_difference | inner_product | partial_sum | power | itoa
  6. apache rewrite机制
  7. js几种数组排序及sort的实现
  8. 文献阅读High-throughput sequencing of the transcriptome and chromatin accessibility in the same cell
  9. 拓端tecdat|Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
  10. xshell 4无法保存新建session
  11. linux imx6 sdio wifi,关于ATWILC1000 wifi模块在imx6q上SDIO接口驱动调试
  12. PanDownloadSpeedPan迅雷极速版合集
  13. php电子邮件群发源码,php电子邮件群发源码
  14. Pic3D裸眼3D贴膜诞生
  15. gif原理+gifsicle压缩gif
  16. 初创公司股权结构应该怎么设计?举例三种模型
  17. Controlling GC pauses with the GarbageFirst Collector
  18. 屁股精神,你知道吗?
  19. 前端工程师应该保存的css3片段
  20. cmd启动MySQL服务显示服务名无效,MySQL服务无法启动 Java

热门文章

  1. openstack资源统计监控系列之ceilometer+gnocchi获取cpu、memory项目实战及实现源码(三)
  2. Vue 官方团队成员的新书来了!
  3. QT:QLineEdit 各类操作详解
  4. 美SEC主席最新表态:PoS代币可能是证券
  5. 对于“NP难问题”的理解
  6. 有道云笔记导入语雀(Windows环境),自用有效
  7. 【随写笔记】定点数和浮点数
  8. PHP基金会 - PHP Foundation
  9. avio_open成功avformat_write_header失败
  10. (二)Linux物理内存初始化