最根本的差别,在于运行环境的不同,想必题主是知道的。最直接的差别,在于运行环境提供的接口不同。由于 node可以获得较高的用户权限,因此它可以直接使用或是变通模拟浏览器提供的全部接口;而由于网页不可能获得比 node 更高的权限,因此无法完全模拟node的许多接口。文件系统、多进程、HTTP服务等模块提供的,都是浏览器没有提供、也难以模拟的接口,所以即便打包塞进网页里,也无法像 node 那样丝滑且正确地运行。新的chrome浏览器已经提供了 window.webkitRequestFileSystem 文件系统接口,以此为基础,再添加合适的 polyfill,应该可以用来运行部分使用了 node 文件系统的代码。
这么说你就懂了,没有 node.js 之前,js 只能在浏览器中运行,也就是 js 只能使用浏览器所提供的功能,当 node.js 出现后,js 就能脱离浏览器而在操作系统中运行,这也是 node.js可以写后端的原因。
最根本的差别,在于运行环境的不同,想必题主是知道的。
最直接的差别,在于运行环境提供的接口不同。由于
node
可以获得较高的用户权限,因此它可以直接使用或是变通模拟浏览器提供的全部接口;而由于网页不可能获得比node
更高的权限,因此无法完全模拟node
的许多接口。文件系统、多进程、
HTTP
服务等模块提供的,都是浏览器没有提供、也难以模拟的接口,所以即便打包塞进网页里,也无法像node
那样丝滑且正确地运行。新的
chrome
浏览器已经提供了window.webkitRequestFileSystem
文件系统接口,以此为基础,再添加合适的polyfill
,应该可以用来运行部分使用了node
文件系统的代码。