这题考察的是面试者对 nodejs 的了解和对 js 标准的了解。
共同点
都尊选 ECMAScript 语法标准,最新版本是 ECMAScript 8
语法包含了变量定义、 循环、判断、 函数、 原型、 原型链、作用域、 闭包、异步,ECMAScript 定义了语法,但是它不能操作 DOM,不能监听 click 事件,不能发送 ajax 请求,不能处理 http 请求,不能操作文件只有它,几乎做不了任何实际的项目。
不同点
nodeJs
nodeJs 主要运行在服务器端,能进行文件读写,数据库连接,网络连接等操作,而且不存在兼容问题,因为运行内核是同一个内核 v8 引擎。同时 nodeJs 有一些内置变量(
__dirname
等),和内置的 nodeApi。它的职能类似 java 语言,用来做后端服务。同时 node 上也有流行的框架express
,koa
等。
标准 js
标准 js 一般运行在浏览器上,所以它包含了,标准语法和 DOM(文档对象模型)和 BOM(浏览器对象模型)。其中 dom 主要描述处理网页内容的方法和接口,将整个文档 document 解析成 dom 树供用户使用 js 对文档进行处理,BOM 描述可以和浏览器窗口交互的方法和接口(对象结构),如:window 对象,history、location、navigator 等,由于浏览器内核和版本不一样,存在很大的兼容问题,简单理解就是 ECMAScript 版本一直在更新,但用户浏览器和内核版本不一定能跟上,所以前端程序员要面临兼容问题,主流做法是用 babel 来转义语法,可以看我的另一篇文章,关于 babel 的 babel 安装。
总结
可以看出 node 和 webJs 有着相同的语法,所以前端 js 开发人员能很容易学会 nodejs,nodejs 主要用于服务器搭建,而 webJs 主要是运行在客户端浏览器,帮助用户完成交互操作,渲染页面等。
个人公众号:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于