转载请注明出处,创作不易,更多文章请戳 https://github.com/ZhengMaste…
前言:JavaScript 诞生于 1995 年,它是一门脚本语言,起初的目的就是为了解决前端页面的动态效果,以及表单输入效验操作之类的。JavaScript 的是由一家名为网景公司开发的,但是 1997 年网景公司将它交给了欧洲计算机制造协会(ECMA),并在同年完成了 ECMA—262,定义名为 ECMAScript 的新标准的脚本语言。JavaScript 是 JavaScript 的规格,而 JavaScript 是 ECMAScript 的一种实现。(通常一个完成的 JavaScript 不仅仅包含了 ECMAScript 还包括了 DOM 以及 BOM)
相关版本:
JavaScript 1.1 该版本在 Netscape Navigator 3.0 中使用。发布于 1996 年 8 月 19 日。JavaScript 1.3 发布于 1998 年 10 月 19 日。符合 ECMA-262 第 1 版和第 2 版的标准。JavaScript 1.5 发布于 2000 年 11 月 14 日。符合 ECMA-262 第 3 版的标准。JavaScript 1.6 发布于发布于 2005 年 11 月。加入了 XML(E4X),Array 方法,String 以及泛型。JavaScript 1.7 增加了许多东西,包括生成器,迭代器,数组解析,let 表达式和解构赋值
JavaScript 1.8.5 包括符合 ECMA-262 Edition 5 的许多新功能。这是最后一个 JavaScript 版本。
1997 年 7 月,ECMAScript 1.0 发布。
1998 年 6 月,ECMAScript 2.0 版发布。
1999 年 12 月,ECMAScript 3.0 版发布,成为 JavaScript 的通行标准,得到了广泛支持
2009 年 12 月,4.0 版本争议太大没有发布,ECMAScript 5.0 版 正式发布
2011 年 6 月,ECMAScript 5.1 版发布,并且成为 ISO 国际标准
2015 年 6 月,ECMAScript 6 正式发布,并且更名为“ECMAScript 2015”,常称为 es6
2016 年 6 月,ES2016 发布,es7
2017 年 6 月,ES2017 发布, es8
JavaScript 特性
首先我们查一下官方的定义,在维基百科里它是这样定义 javascript 这门语言的。
**JavaScript(通常缩写为 JS)是一种高级的、解释型的编程语言。JavaScript 是一门基于原
型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数
式编程。**
在客户端,JavaScript 在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的 HTML5 和 CSS3 语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如 Node.js。
特性:一、运行在客户端浏览器上;二、不用预编译,直接解析执行代码;三、是弱类型语言,较为灵活;四、与操作系统无关,跨平台的语言;五、脚本语言、解释性语言
解释性语言:把做好的源程序翻译一句,然后执行一句,直至结束;执行速度慢、效率低;依靠解释器、跨平台性好 (Php、javascript、Pyhton)
弱类型语言:不需要给一个变量指定特定的数据类型,允许隐式类型转换,即时编译(JIT):Just-in-time compilation,缩写:JIT,是一种提高程序运行效率的方法
命令式编程:命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么
函数式编程:函数式编程和声明式编程是有所关联的,因为他们思想是一致的:即只关注做什么而不是怎么做。但函数式编程不仅仅局限于声明式编程, 函数式编程最重要的特点是“函数第一位”,即函数可以出现在任何地方.
比如你可以把函数作为参数传递给另一个函数,不仅如此你还可以将函数作为返回值。基于原型、函数先行的语言:js 使用基于原型的的继承机制,函数是 js 的第一等公民
其他相关的语言特性
编译型语言 :把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。
强类型语言 :强类型语言,当你定义一个变量是某个类型,如果不经过代码显式转换(强制转化)过,它就永远都是这个类型,如果把它当做其他类型来用,就会报错
动态类型语言 :动态类型语言是指在 运行期间 才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。例如 JavaScript,Php,Python
静态类型语言 :静态类型语言与动态类型语言刚好相反,它的数据类型是在 编译其间 检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++ 是静态类型语言的典型代表,其他的静态类型语言还有 C#、JAVA 等
声明式编程:声明式编程是以数据结构的形式来表达程序执行的逻辑。它的主要思想是告诉计算机应该做什么,但不指定具体要怎么做。它有一个特点是它不需要创建变量用来存储数据,另一个特点是它不包含循环控制的代码如 for,while(SQL 语句,网页编程中用到的 HTML 和 CSS 也都属于声明式编程)