ECMAScript&javascriptECMAScript是EcmaInternational(前身为欧洲计算机制造商协会,英文名称为EuropeanComputerManufacturersAssociation)通过ECMA-262标准化的一种脚本编程语言。这种语言在万维网上广泛使用,通常被称为JavaScript或JScript,尽管后两者实际上是ECMA-262标准的实现和扩展。chromeV8GoogleV8引擎是用C++代码编写的,实现了ECMAScript规范的第五版。它可以运行在所有主流操作系统上,甚至可以运行在移动终端(基于ARM的处理器,如HTCG7等)上。V8最初是为了嵌入谷歌的开源浏览器Chrome而开发的,但是V8是一个独立的模块,可以嵌入到你自己的应用程序中。大名鼎鼎的Node.js(一种异步服务器框架,可以在服务器端使用JavaScript编写高效的Web服务器)就是基于V8引擎的。与其他JavaScript引擎一样,V8编译/执行JavaScript代码、管理内存、负责垃圾回收、与宿主语言交互等等。V8的垃圾收集器使用了很多技术,大大提高了它的运行效率。通过将宿主对象(变量、函数等)暴露给JavaScript,JavaScript可以访问宿主环境中的对象,并在脚本中完成对宿主对象的操作。node.jsNode.js是一个Javascript运行环境(runtime)。其实就是封装了ChromeV8引擎。V8引擎执行Javascript非常快,性能非常好。Node.js针对一些特殊用例进行了优化,并提供了一个替代API,使V8在非浏览器环境中运行得更好。nvmnode.js版本管理器npmNPM是一个随NodeJS一起安装的包管理工具,可以解决NodeJS代码部署中的很多问题。常见的使用场景如下:允许用户从NPM服务器上下载他人编写的第三方包供本地使用。允许用户从NPM服务器上下载安装他人编写的命令行程序供本地使用。允许用户将自己的包或命令行程序上传到NPM服务器供他人使用。expressExpress是一个基于Node.js平台的快速、开放和极简的Web开发框架。koakoa是由最初的Express团队构建的,是一个更小、更具表现力和更健壮的Web框架。使用koa编写web应用,通过组合不同的生成器,可以避免回调函数的重复繁琐嵌套,大大提高错误处理的效率。Koa在内核方法中没有绑定任何中间件,它只提供了一个轻量级优雅的函数库,使得编写Web应用得心应手。babelBabel是一个广泛使用的转码器,可以将ES6代码转换为ES5代码,以便在现有环境中执行。babel-cliBabel提供了用于命令行转码的babel-cli工具。REPL环境在Node.js中,为了方便开发者测试JavaScript代码,提供了一个名为REPL(Read-Eval-Print-Loop)的交互式运行时环境。开发者可以在运行环境中输入任意的JavaScript表达式,当用户按下回车键时,表达式的运行结果就会显示在REPL运行环境中。本章将详细介绍运行环境的基础知识。babel-nodebabel-cli工具自带的babel-node命令提供了一个支持ES6的REPL环境。它支持Node的REPL环境的所有特性,可以直接运行ES6代码。不是单独安装的,是和babel-cli一起安装的。然后执行babel-node进入PEPL环境。
