zoukankan      html  css  js  c++  java
  • JavaScript中的两种全局对象

    这里总结的东西特别适合先学习c/c++, Java这类标准语言再学JS的童鞋们看,因为JS在程序执行之前就会初始化一个全局对象,这个全局对象到底是什么是跟JS程序运行环境有关的。

    根据JavaScript的运行环境,在JS中存在两种全局对象:JS全局对象和window全局对象。

    1. 第一种是在JS语言核心中,即没有web浏览器宿主环境的条件下,在这种环境中,对于任何JS程序,在程序开始之前,JS解释器都会初始化一个全局对象供程序使用,这个全局对象占且称为“JS全局对象”。通过使用“JS全局对象”可以访问所有预定义的全局属性,全局普通函数,全局构造函数和全局对象(这些预定义的全局XX都是“JS全局对象”的属性)。而“JS全局对象”不是任何对象的属性,所以它没有名称,可以在全局作用域内使用this关键字引用“JS全局对象”。

    • “JS全局对象”拥有一些全局属性:比如undefined, Infinity和NaN。
    • “JS全局对象”拥有一些全局对象:比如Math和JSON。
    • “JS全局对象”拥有一些全局普通函数:比如isNaN(), parseInt()和eval()。
    • “JS全局对象”拥有一些全局构造函数:比如Object(), Array(), Date(), RegExp()和String()。

    “JS全局对象”的这些属性的特性:可写性(Writable):true, 可枚举性(Enumerable): false, 可配置性(Configurable): true. 这在ECMA262中有说明如下:

    2. 第二种是运行在web浏览器中的JS程序,web浏览器这个宿主环境中的全局对象为“window全局对象”,“window全局对象”提供了与当前窗口、页面有关的诸多属性与方法。除了这些与浏览器有关的全局属性和方法,window对象还封装了“JS全局对象”,并向外暴露“JS全局对象的属性与接口”。因此,当进行浏览器端JavaScript编程时,只需关心“window全局对象”即可。

  • 相关阅读:
    ZOJ 3818 Pretty Poem
    HDU 4597 Play Game
    HDU 4497 GCD and LCM
    CSU 1335 高桥和低桥
    UVA 10791 Minimum Sum LCM
    CSU 1119 Collecting Coins
    CSU 1120 病毒
    UVA 12169 Disgruntled Judge
    HDU 1301 Jungle Roads
    POJ 1258 Agri-Net
  • 原文地址:https://www.cnblogs.com/iamswf/p/4588039.html
Copyright © 2011-2022 走看看