知道 nodejs 吗?和 web 端 js 区别和共性?

这题考察的是面试者对 nodejs 的了解和对 js 标准的了解。

共同点

都尊选 ECMAScript 语法标准,最新版本是 ECMAScript 8

语法包含了变量定义、 循环、判断、 函数、 原型、 原型链、作用域、 闭包、异步,ECMAScript 定义了语法,但是它不能操作 DOM,不能监听 click 事件,不能发送 AJAX 请求,不能处理 http 请求,不能操作文件只有它,几乎做不了任何实际的项目。

不同点

nodeJs

nodeJs 主要运行在服务器端,能进行文件读写,数据库连接,网络连接等操作,而且不存在兼容问题,因为运行内核是同一个内核 v8 引擎。同时 nodeJs 有一些内置变量(__dirname 等),和内置的 nodeApi。它的职能类似 Java 语言,用来做后端服务。同时 node 上也有流行的框架 expresskoa 等。

标准 js

标准 js 一般运行在浏览器上,所以它包含了,标准语法和 DOM(文档对象模型)和 BOM(浏览器对象模型)。其中 dom 主要描述处理网页内容的方法和接口,将整个文档 document 解析成 dom 树供用户使用 js 对文档进行处理,BOM 描述可以和浏览器窗口交互的方法和接口(对象结构),如:window 对象,history、location、navigator 等,由于浏览器内核和版本不一样,存在很大的兼容问题,简单理解就是 ECMAScript 版本一直在更新,但用户浏览器和内核版本不一定能跟上,所以前端程序员要面临兼容问题,主流做法是用 babel 来转义语法,可以看我的另一篇文章,关于 babel 的 babel 安装

总结

可以看出 node 和 webJs 有着相同的语法,所以前端 js 开发人员能很容易学会 nodejs,nodejs 主要用于服务器搭建,而 webJs 主要是运行在客户端浏览器,帮助用户完成交互操作,渲染页面等。
个人公众号:
qrcode8.jpg

  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    271 引用 • 1353 回帖 • 214 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    616 引用 • 1109 回帖 • 769 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    126 引用 • 246 回帖 • 627 关注

赞助商 我要投放

9 回帖
请输入回帖内容 ...
  • ferried

    如果嫌太多了就看这一句话

    nodejs 提供了操作系统接口

    webjs 提供了浏览器接口

    他们使用的语言是 js

  • 其他回帖
  • hevi1991

    现在 Nodejs 可以用 import、export 了?

    1 回复
  • wizardforcel

    一个是 dom API,一个是 common js API

  • jiangqiang96

    语法基本上都一样的,最大的区别就是 nodejs 和浏览器 js 内置的对象不一样。也就导致他们功能上不一样。

  • 查看更多回帖