node.js

问题:浏览器里的JS

  • 不能脱离浏览器运行
  • 只能调用浏览器支持的API,不能调用底层操作系统的API,如进程管理、文件系统、网络等,从而失去了诸多能力

安全,所以受限

Javascript 引擎

Javascript作为一种脚本语言,它的解释器被称为 Javascript 引擎,一般内置于浏览器。

  • JScript(IE6,IE7, IE8)
  • Chakra(IE9,IE10, IE11, IE Edge)
  • SpiderMonkey(Firefox)
  • JavascriptCore(Safari)
  • V8(chrome)

V8 引擎

  • 当下最为优秀的 Javascript 引擎,最初内置于 Google Chrome 浏览器之中
  • 可以在浏览器之外独立工作和运行
  • 采用开源协议,从而被广泛地移植或嵌入到各种环境,如 NodeJS、MongoDB、CouchDB、photoshop、网络游戏等 等各种环境,从而将Javascript语言成功的推广到了各种环境之中,不再局限于浏览器

node.js

是一组软件的集合:

  • V8引擎:可独立运行的Javascript执行环境,
  • 系统API和核心库:提供对底层操作系统能力的一组调用接口
  • Web服务器:实现了一个标准的Web服务器(如apache),并提供一组标准的基于javscript的Web服务开发框架和功能,如异步、事件等机制,帮助程序员快速开发服务端应用。
  • 模块与包管理工具:提供模块化机制和基于包(package)的管理工具

node.js的出现,使得基于js开发的应用无需浏览器这一宿主环境,可直接进行底层系统调用,使得Javascript演变成为功能完整的编程语言,被广泛用于各种平台。

node初体验 hello world!

// 编辑一个hello.js文件
print('hello world');

在系统中安装node运行环境后,在控制台命令行中输入下面的代码,将看到屏幕显示 'hello world!'

node hello.js

node.js的用途

  • 支持多种界面的前端应用开发: Web、命令行、甚至桌面(electronjs)
    • 命令行应用如vue/react等框架的代码生成器
    • 桌面应用如编辑器vscode、atom等
  • 同构应用
    • node.js实现了Javascript从前端到后端的跨越,不仅在前端一统天下,而且在后端也逐步蚕食java/php/net等服务器语言的地盘
  • node.js 避开了多版本浏览器的兼容性问题,可以不断支持javascript新语法特性

前端开发中的node.js

在本教程中,我们并不介绍基于 node.js 的服务端编程,而是借用node.js的包管理工具,来提升我们完成浏览器应用的代码重构和开发效率

  • 将es6+等高级语法转译为低级语法,从而即享用最新特性又无需考虑浏览器兼容性问题
  • 利用npm等包管理工具,方便代码依赖的管理
  • 利用node生态中的各种工具,提高前端开发效率

node.js应用 Vs 浏览器应用

在最新的现代浏览器中,已经可以直接使用ES6语法,但考虑到兼容旧浏览器,依然需要一个转译

参考阅读

results matching ""

    No results matching ""