一、JavaScript语言最初是为Web浏览器创建的。后来发展称为一种具有多种用途和平台的语言。
二、平台可以是一个浏览器,一个Web服务器,或其他主机(host),甚至可以是一个“智能”咖啡机,如果它能运行JavaScript的话。JavaScript规范将其称为主机环境。
1、主机环境提供了自己的对象和语言核心以外的函数
2、Web浏览器提供了一种控制网页的方法
3、Node.js提供了服务器功能。
window
一、JavaScript在浏览器中运行时的鸟瞰示意图
二、有一个叫做window的“根”对象,它有两个角色
1、是JavaScript代码的全局对象
【实例1】
function sayHi() {
alert('Hello')
}
// 全局函数时全局对象的方法
window.sayHi()
- 如果文档包含框架( 或
- 浏览器打开HTML文档时,通常会创建一个Window对象
2、代表“浏览器窗口”,并提供了控制它的方法
【实例2】
alert(window.innerHeight) // 内部窗口高度
- Window对象表示浏览器的窗口,可用于检索有关窗口状态的信息
- Window对象是浏览器所有内容的主容器
文档对象模型(DOM)
一、文档对象模型(Document Object Model),简称DOM,将所有页面内容表示为可以修改的对象。
二、document对象是页面的主要“入口点”。我们可以使用它来更改或创建页面上的任何内容。
// 将背景颜色修改为红色
document.body.style.background = 'red'
// 在1秒后将其修改回来
setTimeout(() => document.body.style.background='', 1000)
三、DOM不仅仅用于浏览器
1、DOM规范解释了文档的结构,并提供了操作文档的对象。有的非浏览器设备也使用DOM
【示例1】下载HTML文件并对其进行处理的服务器端脚本也可以使用DOM。但它们可能仅支持部分规范中的内容。
浏览器对象模型(BOM)
一、浏览器对象模型(Browser Object Model),简称BOM,表示由浏览器(主机环境)提供的用于处理文档(document)之外的所有内容的其他对象。
navigator
一、navigator对象提供了有关浏览器和操作系统的背景信息。
二、navigator有许多属性,但是最广为人知的两个属性是:
1、navigator.userAgent:关于当前浏览器
2、navigator.platform:关于平台(可以帮助区分Windows/Linux/Mac等)
useAgent
一、Trident内核
1、Trident内核代表产品Internet Explorer,又称其为IE内核。
(1)一直到IE9,都是Trident内核
2、Trident(又称为MSHTML),是微软开发的一种排版引擎。使用Trident渲染引擎的浏览器包括:IE、傲游、世界之窗浏览器、Avant、腾讯TT、Netscape8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。
二、Gecko内核
1、Gecko内核代表作品Mozilla Firefox
2、Gecko是一套开放源代码的、以C++编写的网页排版引擎。Gecko是最流行的排版引擎之一,仅次于Trident。使用它的最著名浏览器有Firefox、Netscape6至9。
三、WebKit内核
1、代表作品Safari、早期的Chrome
2、webkit 是一个开源项目,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统,它的特点在于源码结构清晰、渲染速度极快。缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。主要代表作品有Safari和Google的浏览器Chrome。
四、Presto内核
1、代表作品Opera
1、Presto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。
五、Blink内核
1、Blink内核代表作品Chrome
(1)20211022:chrome现在是Blink内核
location
一、location对象允许我们读取当前URL,并且可以将浏览器重定向到新的URL
alert(location.href) // 显示当前URL
if (confirm('Go to Wikipedia?')) {
location.href = 'https://wikipedia.org' // 将浏览器重定向到另一个URL
}
alert/ confirm/ prompt
一、函数alert/ confirm/ prompt也是BOM的一部分:它们与文档(document)没有直接关系,但它代表了与用户通信的纯浏览器方法。
标准
DOM规范
CSSOM规范
一、描述样式表和样式规则,对它们进行的操作,以及它们与文档的绑定。
HTML规范
一、描述HTML语言(例如标签)以及BOM(浏览器对象模型)
各种浏览器函数:setTimeout,alert,location等。