知道 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

  • 面试

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

    273 引用 • 1355 回帖 • 200 关注
  • JavaScript

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

    665 引用 • 1129 回帖 • 750 关注
  • Node.js

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

    127 引用 • 254 回帖 • 610 关注

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Blackman99
    捐赠者

    我猜你的“只能”是想表达“职能”

    Screenshot20200506214532.jpg

    1 回复
    1 操作
    Blackman99 在 2020-05-06 21:46:22 更新了该回帖
  • someone27889
    捐赠者

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

    nodejs 提供了操作系统接口

    webjs 提供了浏览器接口

    他们使用的语言是 js

  • wizardforcel

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

  • zhujie
    作者

    有区别的,只能说语法规范是一致的,然后内置对象是一致的,但是有些对象只在浏览器里面有,比如说 document,windows 等。
    而 node 上面也有 node 独有的 API

  • zhujie
    作者

    尴尬了, 你是对的

  • hevi1991

    现在 Nodejs 可以用 import、export 了?

    1 回复
  • zhujie
    作者

    不能直接使用,在有 babel 的环境下可以,这种事通过转换代码。

    还有一种是将.js 的扩展名改为。mjs 则可以原生支持 import

  • jiangqiang96

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

请输入回帖内容 ...