(50)Wangdao.com第七天_JavaScript 发展与简介
一个完整的JavaScript 应该由以下三部分组成:
- ECMAScript
- DOM,全称Browser Object Model,即浏览器对象模型,主要处理浏览器窗口和框架
- BOM,全称Document Object Model,即文档对象模型,是
HTML
和XML
的应用程序接口(API
),遵循W3C 的标准,所有浏览器公共遵守的标准
JavaScript
是通过访问 BOM
(Browser Object Model)对象来访问、控制、修改客户端(浏览器),
由于 BOM
的 window
包含了 document
,window 对象的属性和方法是直接可以使用而且被感知的,
因此可以直接使用 window
对象的 document
属性,通过 document
属性就可以访问、检索、修改 XHTML 文档内容与结构。
因为 document
对象又是 DOM(Document Object Model)模型的根节点。
可以说,BOM 包含了 DOM
(对象),浏览器提供出来给予访问的是 BOM 对象,从 BOM 对象再访问到 DOM
对象,从而 js 可以操作浏览器以及浏览器读取到的文档。
作者:昊晗远昂
出处: http://www.cnblogs.com/splendid/
转载请注明出处和原文链接
JavaScript 发展
- 诞生于1995年,由 NetScape 网景公司推出,主要用于处理网页中的前端验证, 在发布前准备叫 livescript 。
-
1995年,Netscape 公司雇佣了程序员 Brendan Eich 开发这种网页脚本语言。
Brendan Eich 有很强的函数式编程背景,希望以 Scheme 语言(函数式语言鼻祖 LISP 语言的一种方言)为蓝本,实现这种新语言。
1995年5月,Brendan Eich 只用了10天,就设计完成了这种语言的第一版。它是一个大杂烩,语法有多个来源。
- 基本语法:借鉴 C 语言和 Java 语言。
- 数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类。
- 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包。
- 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。
- 正则表达式:借鉴 Perl 语言。
- 字符串和数组处理:借鉴 Python 语言。
- 1996年,微软公司在其 IE3 中引入了自己对 JavaScript 的实现,JScript 。
- 1997年,网景公司无奈将 JavaScript 捐献给了欧洲计算机制造商协会 ECMA,1998年,ECMAScript 第2版登场。。。DOMLevel 1 的制定。。。新型语言 DHTML 登场。
ECMAScript 第1版登场
ECMAScript 作为一个标准存在,只有文档没有实现,交给各个厂商去实现。
上面这个原因,才有了现在的 FireFox 的 SpiderMonKey 引擎,IE 的 JScript,Chrome 的 V8 引擎是整个JS最快的引擎... ...
网景公司也卖了,变成了现在的 FireFox 。
- 1999年,ECMAScript 第 3 版登场。
- 2000年,DOMLevel 2 的制定。
- 2002年,ISO/IEC 16262:2002 确立。
- DOMLevel 3 的制定。
- 2005年,新型语言 AJAX 登场。
- 2009年,ECMAScript 第 5 版登场。。。新型语言 HTML5 登场。
- 2015年,ECMAScript 第 5 版登场。
- js 如今可以干什么?
- 验证表单
- 网页动态效果
- 服务器端开发 node.js
- 开发有限
- 客户端与服务器端的交互
- javascript
- java 是一门编译型语言,需要经过编译器编译成计算机认识的二进制,然后再执行。
- js 是一门解释型语言,不需要编译,由浏览器作为解释器,直接一条一条执行。
- js 是一种小型的,简单的,动态语言,变量可以保存任何类型的数据,性能上相较于静态语言要差一点,但是由于JavaScript中应用的JIT技术,JS可能是运行速度最快的动态语言。
- js 可以模拟类的概念,但不是面向对象语言。
- 函数是一种独立的数据类型,采用基于原型对象prototype的继承链。比java更自由。
- 编程风格是,函数式编程和面向对象编程的一种混合体。
- ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。
- ECMAScript 只用来标准化 JavaScript 这种语言的基本语法结构,与部署环境相关的标准都由其他标准规定
比如 DOM 的标准就是由 W3C组织(World Wide Web Consortium)制定的。
- 2008年,V8 编译器诞生
这是 Google 公司为 Chrome 浏览器而开发的,它的特点是让 JavaScript 的运行变得非常快。
它提高了 JavaScript 的性能,推动了语法的改进和标准化,改变外界对 JavaScript 的不佳印象。
同时,V8 是开源的,任何人想要一种快速的嵌入式脚本语言,都可以采用 V8,这拓展了 JavaScript 的应用领域。
- 2009年,Node.js 项目诞生,创始人为 Ryan Dahl
它标志着 JavaScript 可以用于服务器端编程,从此网站的前端和后端可以使用同一种语言开发。
并且,Node.js 可以承受很大的并发流量,使得开发某些互联网大规模的实时应用变得容易。
- 2013年5月,Facebook 发布 UI 框架库 React,引入了新的 JSX 语法,使得 UI 层可以用组件开发,同时引入了网页应用是状态机的概念。
- 2015年4月,Angular 框架宣布,2.0 版将基于微软公司的 TypeScript 语言开发,这等于为 JavaScript 语言引入了强类型。
- 2015年6月,Mozilla 在 asm.js 的基础上发布 WebAssembly 项目
这是一种 JavaScript 引擎的中间码格式,全部都是二进制,类似于 Java 的字节码
有利于移动设备加载 JavaScript 脚本,执行速度提高了 20+ 倍。这意味着将来的软件,会发布 JavaScript 二进制包。
- 2017年11月,所有主流浏览器全部支持 WebAssembly
这意味着任何语言都可以编译成 JavaScript,在浏览器运行。