JavaScript是什么?JavaScript是一种语言,JavaScript的标准是ECMAScript。什么是ECMAScript?我们所说的ES5、ES6……指的是ECMAScript的不同标准。ECMAScript只是一个标准,JavaScript是这个标准的实现。为什么不继续称它为JavaScript?因为Oracle拥有Java和JavaScript的商标权。(感谢@杨东在评论区对这部分内容进行更正)在最新的ECMA-262标准手册中,全文只有一处包含JavaScript。ECMAScript基于多种原始技术,最著名的是JavaScript(Netscape)和JScript(Microsoft)。该语言由Netscape的BrendanEich发明,并首次出现在该公司的Navigator2.0浏览器中。它出现在Netscape的所有后续浏览器和Microsoft从InternetExplorer3.0开始的所有浏览器中。什么是Node.js?Node.js?是一个基于Chrome的V8JavaScript引擎构建的JavaScript运行时。Node.js使用事件驱动、非阻塞I/O模型,使其轻量级且高效。Node.js的包生态系统npm是世界上最大的开源库生态系统。NodeJS是一个基于ChromeV8引擎的JavaScript运行环境。NodeJS使用事件驱动、非阻塞I/O。NodeJS的包管理生态是NPM,它是世界上最大的开源包库。呃……还是不明白NodeJS有什么特别之处?JavaScript是一种需要运行时环境的脚本语言。就好比PHP需要Apache,JSP需要Tomcat等等(例子不全面,只是为了理解)……在NodeJS之前,JavaScript的运行环境是浏览器,也就是JavaScript只能运行在网页中。在NodeJS之后,JavaScript又多了一个运行环境,这就是NodeJS。具体来说……NodeJS有什么特别之处?既然NodeJS底层是Chrome的V8引擎,那么libuv封装了一些I/O线程池管理和网络I/O操作,都是用C/C++写的。简单的说,NodeJS可以控制系统文件的读写和网络的输入输出。所以NodeJS可以简单的认为是一个可以运行JavaScript的服务器。(例子不全面,仅供理解)那么...NodeJS和VueJS、ReactJS、AngularJS有什么区别?这些工具的起源和诞生几乎浓缩了前端的开发过程,因为NodeJS可以读写文件,监控网络输入输出。因此,NodeJS与VueJS、ReactJS和AngularJS之间存在非常根本的区别。NodeJS是一个可以运行JavaScript的环境,其余三个是用JavaScript编写的库。NodeJS一般用在什么地方?目前前端开发的开发环境大多使用NodeJS。以Webpack为例,webpack是一个运行在NodeJS端的打包工具,它帮你把写好的a.js、b.js、c.js……打包成一个bundle.js。而这种打包的第一步是读取(文件读取能力)你的a.js,b.js,c.js...,所以只能在NodeJS环境下进行。当然,中间步骤会比较麻烦。比如你的a.js使用了最新的ES7语法async/await,在老版本的浏览器中会报错,所以打包过程基本就是//sourcecodeconstgetJson=async()=>{letresponse=awaitajax(网址);控制台日志(响应);返回响应;}//转义函数getJson(){varresponse;returnnewPromise(function(resolve,reject){returnajax(URL).then(function(res){response=res;console.log(response);resolve(response);})})}这些都搞定了通过在NodeJS环境中运行的Webpack。vue-cli和NodeJS有什么联系?vue-cli、react-cli、ng-cli都是运行在NodeJS环境下的脚手架。也就是说,我们不能直接在浏览器中运行vue-cli。vue-cli因为具备读写文件的能力,可以帮助我们集成(或打包)vue核心模块,对我们的代码进行转义和压缩。所以vue-cli是一个运行在NodeJS环境下的脚手架,帮助我们开发基于Vue框架的项目。NodeJS还能做什么?使用JS作为服务端:Express/EggJS/HAPI/Koa等可以学习使用JS作为移动混合应用:PhoneGap/Cordova/Ionic学习使用JS作为移动原生应用:React-Native/NativeScript/WEEX看完这个答案我该怎么办?1)尝试学习一个NodeJS框架2)尝试了解框架的实现原理
