转载请注明出处,创作不易,更多文章请戳 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 也都属于声明式编程)


ZhengMaster2020
214 声望4 粉丝

一名全栈小白,正加鞭赶马地学习。。。