概念区分:JavaScript中的global对象,window对象以及document对象

el/2024/2/25 23:25:46

1、global对象(全局对象)

《JS高级程序设计》中谈到,global对象可以说是ECMAScript中对特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的。从某种意义上讲,它是一个终极的“兜底儿对象”,换句话说呢,就是不属于任何其他对象的属性和方法,最终都是它的属性和方法。我理解为,这个global对象呢,就是整个JS的“老祖宗”,找不到归属的那些“子子孙孙”都可以到它这里来认祖归宗。所有在全局作用域中定义的属性和函数,都是global对象的属性和方法,比如isNaN()、parseInt()以及parseFloat()等,实际都是它的方法;还有就是常见的一些特殊值,如:NaN、undefined等都是它的属性,以及一些构造函数Object、Array等也都是它的方法。总之,记住一点:global对象就是“老祖宗”,所有找不到归属的就都是它的。


2、window对象

前面说了global对象是“老祖宗”,那有人该问了,你把window对象置于何地呢?对,javascript这门语言现在这么红火很大部分原因是因为W3C将它作为写页面的官方脚本语言,但别忘了js它不仅仅可以用来写页面,也就是不仅仅可以用在浏览器中。window对象是相对于web浏览器而言的,它并不是ECMAScripta规定的内置对象,内置对象的定义是:“由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。window对象是宿主对象也就是在一定的环境中才会生成的对象(这里也就是指浏览器),而global对象是在任何环境中都存在的。window对象具体也就是指浏览器打开的那个窗口。


3、document对象

简单来说,document对象是window对象的一个属性,是显示于窗口内的一个文档。而window对象则是一个顶层对象,它不是另一个对象的属性。document可以理解为文档,就是你的网页,而window是你的窗口,就是你的浏览器包含的。它们俩在没有框架的情况下可以说是等同的,在有框架的情况下就要区别对待了。


以上。


http://www.ngui.cc/el/4893680.html

相关文章

【C++】拷贝构造函数之浅复制与深复制

拷贝构造函数之浅复制与深复制 拷贝构造函数分为默认拷贝构造函数和自定义拷贝构造函数,默认拷贝构造函数是编译器自动为类对象创建的构造函数,而自定义拷贝构造函数则是根据自己需要创建的函数 特性 默认拷贝构造函数:简单地将参数对象的…

【C++】编程小结① -- new和delete

new 和 delete 使用的疏忽 1.谨记格式:指针所指对象数据类型* 变量名 new 数据类型(初始化变量值,可省略); int* val new int;//val 指向一个没有初始化的int型对象(int是内置数据类型,不会初始化&#…

【C++】编程小结②-- 字符串定义变量

关于字符串 如果要将字符一个个赋值进一个字符数组中并最后要用字符串的形式输出整个字符串,则需要手动在最后加入“\0”,不然编译器将读取不到结尾导致意想不到的后果。 定义变量的位置问题 c里允许在for循环里定义变量,但这是有局限性的。…

【C++】指向指针的指针int**的深复制的实现

实现指向指针的指针的深复制 如编写一个构造函数初始化一个矩阵。矩阵元素用一个二维数组来表示。 //定义了一个表示矩阵的类 class Matrix { public:Matrix(string name, int height, int width, int** element);~Matrix(); private:string name;int height;int width;int** …

【C++】编程小结③-- string 宏

关于string的“”号的使用 1.可以是两个string对象相加 #include<string> string s1 "abc"; string s2 "efg"; string s3 s1 s2; 2.和字符串字面值连接 当进行string对象和字符串字面值混合连接操作时&#xff0c;操作符的左右操作数必须至少…

【C++】Digest of 《effective C++》--1

《effective C》阅读笔记01 size_t是c计算个数时使用的某种不带正负号&#xff08;unsigned&#xff09;类型。它也是vector&#xff0c;deque和string内的operator[]函数接受的参数类型。分清楚声明式和定义式&#xff0c;对对象而言&#xff0c;定义式是编译器为此对象拨发内…

什么事情,都要去试一试啊

广州&#xff0c;下了一个月的雨&#xff0c;还在持续着超过一个月的阴天。 前段时间经历过一个心情的低谷。感觉自己真的变成了一个抑郁症患者&#xff0c;不想吃东西&#xff0c;不想做事情&#xff0c;对什么都提不起兴趣。那个时候的自己&#xff0c;可能受到各种外界的影…

【C++】标准IO库

本文章根据《C Primer》总结而来 IO类型在三个独立的头文件中定义&#xff1a; iostream定义读写控制窗口的类型fstream定义读写已命名文件的类型sstream定义读写存储在内存中的string对象 IO对象不可复制或赋值 1、只有支持复制的元素类型可以存储在vector或其他容器里&#…

【C++】关于const的使用

摘自《effective c》条款03 const可以修饰classes外部的global或namespace作用域中的常量、或文件、函数、或区块作用域&#xff08;block scope&#xff09;中被声明为static的对象。还可以修饰classes内部的static和non-static成员变量。 const对指针和迭代器的应用 面对指…

【JavaScript】类型、值和变量

JavaScript中非常重要的数据类型是对象和数组。JavaScript标识符必须以字母、下划线&#xff08;_&#xff09;或美元符&#xff08;$&#xff09;开始&#xff0c;后续字符可以是字母、数字、下划线或美元符。JavaScript变量是无类型的&#xff08;untyped&#xff09;&#x…