JS历史
- JavaScript 诞生于 1995 年。NetSpace发布Netspace Navigator2浏览器,提供了免费开发工具LiveScript,设计的主要目的是处理以前由服务器端语言负责的一些输入验证操作。在人们普遍使用电话拔号上网的年代,能够在客户端完成一些基本的验证任务绝对很不容易。因为Java流行,所以改名为JavaScript。这个就是JavaScript1.0版本。
- 因为JavaScript很受欢迎,Netspace Navigator3浏览器发布了JavaScript1.1版本。不久IE3也加入的脚本编程的功能,为了避免纠纷,命名为JScript。
- 1997年,ECMA以JavaScript1.1为基础制定了脚本语言标准:ECMA-262,并命名为ECMAScript。浏览器厂商使用ECMAScript作为各自的JavaScript实现的规范标准。
ECMAScript
-
1997年,ECMA发布262号标准文件(ECMA-262)第一版,规定了脚本语言的实现标准,并将这种标准命名为ECMAScript,这个就是ES1.0版本。
-
ECMAScript是JavaScript语言的规范标准,JavaScript是ECMAScript的一种实现方式。在一些语境中是可以互换的。ECMAScript规定了语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象。
ECMAScript版本
- 1998年6月, ECMAScript2.0版发布
- 1990年12月, ECMAScript3.0版发布,并成为 JavaScript的通用标准,获得广泛支持
- 2007年10月, ECMAScript4.0版草案发布,对3.0版做了大幅升级。由于4.0版的目标过于激进各方对于是否通过这个标准产生了严重分歧,2008年7月,ECMA中止ECMAScript4.0的开发,将其中涉及现有功能改善的一小部分发布为ECMAScript3.1.不久, ECMAScript3.1改名为 ECMAScript5
- 2009年12月, ECMAScrip5.0版正式发布
- 2011年6月, ECMAScript 5.1版发布
- 2013年12月, ECMAScrip6版草案发布2015年6月, ECMAScript6发布正式版本,并更名为 ECMAScript2015。目前最新版本为 ECMAScript2019,于2019年7月正式发布
为什么学习JS
-
所有主流浏览器都支持 JavaScript。
-
目前,全世界大部分网页都使用 JavaScript。
-
它可以让网页呈现各种动态效果。
-
做为一个 Web 开发师,如果你想提供漂亮的网页、令用户满意的上网体验,JavaScript 是必不可少的工具
曾经有人说:
但是JS之父说:any application that can be written in JavaScript,will eventually be written in JavaScript
借用一下阮一峰老师的微博:
- 使用场景
- WEB 前端
- 图形处理
- PDF生成
- 图形界面
- 各种测试工具
- 视频和音频播放和处理
- 通信
- 多人协作
- 后端
- Node
- 开发框架Express/ThinkJS/Clouda
- 博客系统:Ghost/hexo
- 基于 Node 的前端自动化工具:Grunt/Gulp
- Hybrid App
- 游戏
- 世界上最流行的 2D 游戏引擎之一 Cocos2d 和最流行的 3D 游戏引擎之一 Unity3D 均支持 JS 开发游戏。
- WEB 前端
JavaScript 概念
JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,在HTML网页上使用,用来给HTML网页增加动态功能。
- 直译式:它不需要经过编译器先行编译为机器码,之后直接在 CPU 中运行。直译式语言需要通过解释器,在运行期动态直译。
- 脚本语言: JavaScript是在程序的运行过程中逐行进行解释,只在被调用时进行解释或编译。
- 动态类型:变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
- 弱类型:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值
- 基于原型:只有对象,没有类;对象继承对象,而不是类继承类。“原型对象”是基于原型语言的核心概念。原型对象是新对象的模板,它将自身的属性共享给新对象。一个对象不但可以享有自己创建时和运行时定义的属性,而且可以享有原型对象的属性
JS构成
完整的JS由一下几个构成
- ECMAScript:语言核心部分
- 文档对象模型(DOM)网页文档操作标准,HTML应用程序编程接口(API),DOM把整个文档映射成一个树形节点结构,方便JS脚本快速访问和操作。
- 浏览器对象模型(BOM) 客户端和浏览器窗口的操作基础,使用BOM可以对浏览器窗口进行访问和操作,如移动窗口,访问历史记录等等,没有规范,但是所有浏览器默认支持