JS | JS中的global、window以及document对象的区别

目录

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

1、global对象(全局对象)

2、window对象

3、document对象

二、详解HTML中的window对象和document对象

Window -- 代表浏览器中一个打开的窗口:

对象属性

对象方法

成员对象

document对象 -- 代表整个HTML 文档,可用来访问页面中的所有元素:

对象属性

常用对象方法

body-主体子对象

主体子对象属性

常用对象事件

location-位置子对象

位置子对象属性

常用对象事件

selection-选区子对象

Selection对象属性

Selection对象的使用方法

Range对象与Selection对象的关系

images集合(页面中的图象):

a)通过集合引用

b)通过nane属性直接引用

c)引用图片的src属性


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

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对象具体也就是指浏览器打开的那个窗口。

小结:‌window对象 和 global对象的主要区别在于它们的定义、作用范围以及存在的环境。‌

  • 定义和作用范围‌:

    • global对象‌:global对象是ECMAScript规定的一个全局对象,它存在于任何环境中,不依赖于特定的宿主环境。所有在全局作用域中定义的属性和函数都是global对象的属性和方法‌12。
    • window对象‌:window对象是特定于浏览器环境的对象,它是ECMAScript在浏览器中的实现。window对象代表一个浏览器窗口,包含了浏览器提供的API,如操作浏览器窗口和文档的方法和属性‌。
  • 存在的环境‌:

    • global对象‌:作为一个单体内置对象,global对象不依赖于任何特定的宿主环境,因此在任何环境中都可以存在‌。
    • window对象‌:window对象依赖于浏览器环境,是宿主对象,只有在浏览器中才会存在。它是ECMAScript在浏览器中的具体实现,代表了浏览器窗口‌
3、document对象

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

二、详解HTML中的window对象和document对象

Window -- 代表浏览器中一个打开的窗口:
对象属性
window; //窗口自身
window.self; //引用本窗户window=window.self
window.name; //为窗口命名
window.defaultStatus; //设定窗户状态栏信息
window.location; //URL地址,配备布置这个属性可以打开新的页面
对象方法
window.alert("text"); //提示信息会话框
window.confirm("text"); //确认会话框
window.prompt("text"); //要求键盘输入会话框
window.setIntervel("action", time); //每一隔指定的时间(毫秒)就执行一次操作
window.clearInterval(); //清除时间配备布置作用就是终止轮回
window.setTimeout(action, time); //隔了指定的时间(毫秒)执行一次操作
window.open(); //打开新的窗口
window.close(); //关闭窗口
成员对象
window.event;
window.document; // 见document对象详解
window.history;
window.screen;
window.navigator;
window.external;

-------------------------------------------------- -------------------

window.history对象

window.history.length //浏览过的页面数
history.back() //后退
history.forward() //前进
history.go(i) //前进或后退到历史记录的第i个页面:i>0进步,i<0 后退

------------------------------------------------- -------------------

window.screen对象

window.screen.width; //屏幕宽度
window.screen.height; //屏幕高度
window.screen.colorDepth; //屏幕色深
window.screen.availWidth; //可用宽度
window.screen.availHeight; //可用高度(除去任务栏的高度)

-------------------------------------------------- -------------------

window.external对象

window.external.AddFavorite("地址","标题" ) //把网站新增到保藏夹

-------------------------------------------------- -------------------
window.navigator对象

window.navigator.appCodeName; //浏览器代码名
window.navigator.appName; //浏览器应用程序名
window.navigator.appMinorVersion; //浏览器补丁版本
window.navigator.cpuClass; //cpu类型 x86
window.navigator.platform; //操作体系类型 win32
window.navigator.plugins;
window.navigator.opsProfile;
window.navigator.userProfile;
window.navigator.systemLanguage; //客户体系语言 zh-cn简体中文
window.navigator.userLanguage; //用户语言,同上
window.navigator.appVersion; //浏览器版本
window.navigator.userAgent;
window.navigator.onLine; //用户否在线
window.navigator.cookieEnabled; //浏览器是否撑持cookie
window.navigator.mimeTypes;
document对象 -- 代表整个HTML 文档,可用来访问页面中的所有元素:
对象属性
document.title                 //设置文档标题等价于HTML的<title>标签
document.bgColor               //设置页面背景色
document.fgColor               //设置前景色(文本颜色)
document.linkColor             //未点击过的链接颜色
document.alinkColor            //激活链接(焦点在此链接上)的颜色
document.vlinkColor            //已点击过的链接颜色
document.URL                   //设置URL属性从而在同一窗口打开另一网页
document.fileCreatedDate       //文件建立日期,只读属性
document.fileModifiedDate      //文件修改日期,只读属性
document.fileSize              //文件大小,只读属性
document.cookie                //设置和读出cookie
document.charset               //设置字符集 简体中文:gb2312
常用对象方法
document.write()                      //动态向页面写入内容
document.createElement(Tag)           //创建一个html标签对象
document.getElementById(ID)           //获得指定ID值的对象
document.getElementsByName(Name)      //获得指定Name值的对象
document.body.appendChild(oTag)
body-主体子对象
主体子对象属性
document.body                   //指定文档主体的开始和结束等价于<body></body>
document.body.bgColor           //设置或获取对象后面的背景颜色
document.body.link              //未点击过的链接颜色
document.body.alink             //激活链接(焦点在此链接上)的颜色
document.body.vlink             //已点击过的链接颜色
document.body.text              //文本色
document.body.innerText         //设置<body>...</body>之间的文本
document.body.innerHTML         //设置<body>...</body>之间的HTML代码
document.body.topMargin         //页面上边距
document.body.leftMargin        //页面左边距
document.body.rightMargin       //页面右边距
document.body.bottomMargin      //页面下边距
document.body.background        //背景图片
document.body.appendChild(oTag) //动态生成一个HTML对象
常用对象事件
document.body.οnclick="func()"              //鼠标指针单击对象是触发
document.body.οnmοuseοver="func()"          //鼠标指针移到对象时触发
document.body.οnmοuseοut="func()"           //鼠标指针移出对象时触发
location-位置子对象
位置子对象属性
document.location.hash          // #号后的部分
document.location.host          // 域名+端口号
document.location.hostname      // 域名
document.location.href          // 完整URL
document.location.pathname      // 目录部分
document.location.port          // 端口号
document.location.protocol      // 网络协议(http:)
document.location.search        // ?号后的部分
常用对象事件
documeny.location.reload()          //刷新网页
document.location.reload(URL)       //打开新的网页
document.location.assign(URL)       //打开新的网页
document.location.replace(URL)      //打开新的网页
selection-选区子对象

document.selection
Selection对象属性

浏览器Selection对象‌代表页面中被用户选中的文本区域,可以通过window.getSelection()方法获取。Selection对象包含多个子对象,每个子对象都描述了选区的不同方面。以下是Selection对象的主要子对象及其功能:

  1. anchorNode‌:表示选区起点的节点。这是用户按下鼠标左键的节点‌。
  2. anchorOffset‌:表示选区起点在anchorNode中的偏移量,从0开始计数‌。
  3. focusNode‌:表示选区终点的节点。这是用户松开鼠标左键的节点‌。
  4. focusOffset‌:表示选区终点在focusNode中的偏移量,从0开始计数‌。
  5. isCollapsed‌:一个布尔值,表示选区的起点和终点是否在同一个位置。如果选区没有选中任何内容,则为true‌。
  6. rangeCount‌:表示选区内Range对象的数量。在大多数浏览器中,通常只有一个Range对象,除非在支持多选区的浏览器中可能有多个‌。
  7. type‌:表示选区的类型,可以是None(没有选择)、Caret(光标位置)或Range(选择范围)‌。
Selection对象的使用方法
  • 获取Selection对象‌:通过window.getSelection()可以获取当前的Selection对象。
  • 获取选区范围‌:使用getRangeAt(index)方法可以获取选区内的Range对象。通常使用getRangeAt(0)来获取选区内的第一个Range对象‌。
  • 操作选区‌:可以使用collapse()方法将选区折叠到某个节点和偏移量,或者使用extend()方法扩展选区到某个节点和偏移量‌。
Range对象与Selection对象的关系

Range对象代表页面上的一段连续区域,每个Selection对象可以包含一个或多个Range对象。在大多数浏览器中,通常只有一个Range对象,但在支持多选区的浏览器中,如Firefox,可能有多个Range对象‌。

images集合(页面中的图象):
a)通过集合引用
document.images                 //对应页面上的<img>标签
document.images.length          //对应页面上<img>标签的个数
document.images[0]              //第1个<img>标签           
document.images[i]              //第i-1个<img>标签
b)通过nane属性直接引用
<img name="oImage">
document.images.oImage          // document.images.name属性
c)引用图片的src属性
document.images.oImage.src      // document.images.name属性.src

● 参考资料 ●

JavaScript中几个特殊的对象:window、this、global对象 - 博客园

JavaScript中global对象和window对象之间的区别 - CSDN博客

### Window对象Document对象的定义及作用 #### Window对象 `Window`对象表示浏览器窗口或框架,是浏览器对象模型(BOM)[^2]的核心部分。作为顶级对象,在网页加载时自动创建并始终存在。所有的全局变量、函数都属于这个对象的一部分。 - **特点** - `window`不仅是一个普通的JavaScript对象,还是ECMAScript标准里的Global对象。 - 浏览器环境下的任何脚本都可以直接访问其属性与方法而无需显式声明。 - **主要职责** - 提供对整个浏览器窗口的操作接口,比如调整大小、移动位置等。 - 负责管理页面生命周期事件(如加载完成、关闭前确认)。 - 组织其他重要的内置组件,像`location`, `history`, `navigator`等等。 ```javascript console.log(this === window); // true, 在全局上下文中 this 就是指向 window 的 ``` #### Document对象 `Document`则是DOM(Document Object Model)树结构的具体体现形式之一,用于描述HTML文档的内容及其层次关系。它是`Window`的一个重要子对象,可以通过`window.document`来获取[^1]。 - **功能概述** - 表达当前正在显示于视窗内的Web资源——即HTML文件本身。 - 支持多种方式查询节点元素,例如通过ID(`getElementById`)、名称(`getElementsByName`)或是标签名(`getElementsByTagName`)查找特定项。 - 具备修改现有内容的能力,允许动态添加新元素或者更新已有数据。 - **操作实例** ```javascript // 向body内追加一段文字 let p = document.createElement('p'); p.textContent = '这是新增的一句话'; document.body.appendChild(p); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

儒雅的烤地瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值