JavaScript的历史版本
其中ES5个人认为是使用时间最长也是最稳定的版本。基于该版本衍生出来的很多经典框架诸如ext,propertype.js,jquery,easyUI都是这个时代的杰作。
而ES6则是最具变革性的版本,这个版本将Javascript真正过渡到面向对象编程的语言,从而代替了早期声明式functon,json,原型链等临时性的创建对象方案。同时ES6的修饰器,反射,Proxy等新特性也在向高级Java特性靠近。
Javascript的语言特点
- 脚本语言:JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
- 基于对象:JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
- 简单:JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
- 动态性:JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应
- 跨平台性:JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。不同于服务器端脚本语言,例如PHP与ASP
JavaScript编译原理及执行
- 编译过程:
- 分词与词法分析:把输入的字符串分解为一些对编程语言有意义的代码块(词法单元)。
- 解析与语法分析:将上一步的词法单元集合分析并最终转换为一个由元素逐级嵌套所组成的代表了程序语法结构的树,称为抽象语法树(Abstract Syntax Tree,AST)。
- 代码生成:将上一步的AST转换为可执行代码。
- 执行过程:
- 作用域:收集标识符及变量
- 编译器:语法分析及代码生成
- 引擎:执行