什么是JavaScript

吐槽君 分类:javascript

前言

最近购买JavaScript高级程序设计,每一章的重点内容都打下笔记吧。加深印象的同时便于复习

第一章,主要介绍了JavaScript为什么会在那个时代诞生,以及如何实现

简短的历史回顾

1995年,网景公司名叫Brendan Eich的工程师,只用10天就写出了JavaScript第一版。主要用途是替代服务器端处理输入验证。在此之前,要验证某个必填字段是否已填写,或者某个输入值是否有效,需要与服务器的一次往返通信。随着网页变得越来越大、越来越复杂。当你好不容易填写完毕,单机“提交按钮”,等了30秒以后,看到一条必填字段没填,此时是什么心情??

JavaScript实现

完整的JavaScript实现包含以下几个部分:

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

ECMAScript

ECMAScript,即是定义的语言,并不局限于Web浏览器。事实上,这门语言没有输入和输出之类的方法,只是作为一个基准来定义,以便在它之上构建更稳健的脚本语言。提起这个名词,或许很多人不记得。要是提起大名鼎鼎的ES6,是不是知道的更多?

ECMAScript和JavaScript的关系是:前者是后者的规格,后者是前者的一种实现。(实现ECMAScript语言的还有Adobe ActionScript、Jscript)

在基本的层面,它描述这门语言的如下部分:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 全局对象

DOM

DOM就是文档对象模型,什么是文档对象模型呢?这就要好好的说一下了。

HTML DOM会将HTML解析成一个树状的结构,该结构被称为节点树,以下列一个简单HTML文档为例

<html>
	<head>
        <title>
        	Document
        </title>
    </head>
    <body>
        <p>
            Hello World!
        </p>
    </body>
</html>
 

这些代码通过DOM可以表示为一组分层节点,如下图所示

DOM.png

DOM通过创建表示文档的树,让开发者随心所欲控制网页的内容和结构。使用DOM API,可以轻松地删除、添加、替换、修改节点。

为什么DOM是必需的?

主要原因就是,网景和微软采用不同思路开发DHTML(Dynamic HTML简称,就是动态的HTML),人们担心如果无法控制网景和微软各行其是,那么web端就会发生分裂。万维网联盟开始制定DOM标准的进程。

BOM

BOM就是浏览器对象模型,用于支持访问和操作浏览器的窗口。使用BOM,开发者可以操控浏览器显示之外的部分。BOM是唯一一个没有相关标准的JavaScript实现。HTML5改变了这个局面

总体来说,BOM主要针对浏览器窗口和子窗口。人们把任何特定于浏览器的扩展都归在BOM的范畴内

例如:

  • 弹出新浏览器窗口的能力
  • 移动、缩放和关闭浏览器窗口的能力
  • navigator对象,提供关于浏览器的详尽信息
  • location对象,提供浏览器加载页面的详尽信息
  • screen对象,提供关于用户屏幕分辨率的详尽信息
  • performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息
  • 对cookie的支持
  • 其它自定义对象。如:XMLHttpRequest和IE的ActiveXObject

总结

ECMAScript:描述了JS的语法和基本对象

DOM(文档对象模型):处理网页内容

BOM(浏览器对象):处理网页内容的方法

回复

我来回复
  • 暂无回复内容