谈谈Node.js 和浏览器之间有什么区别

·  阅读 240
谈谈Node.js 和浏览器之间有什么区别

「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战

首先浏览器和 Node.js 都使用 JavaScript 作为应用开发的编程语言。

在浏览器中运行的应用程序与 Node.js 中的应用程序则完全不同。

尽管它们都是 JavaScript,但仍有一些关键差异是完全不同的。

从经常使用 JavaScript 的前端开发人员的角度来看,Node.js 应用带来了巨大的优势:以单一语言编写所有内容(前端和后端)。

所以这是一个巨大的机会,因为我们知道,学习、并且深入的掌握一门编程语言是多么困难,并且通过使用同一种语言完成你所有的工作——无论是在客户端浏览器还是在服务器上,我们都将处于一个得天独厚的优势地位。

Node.js改变了前端,甚至是后端的整个生态系统。

在浏览器中,我们所做的大部分事情都是与 DOM 或其他 Web 平台 API(如 Cookie,移动端Native的API)进行交互。

当然,这些在 Node.js 中是不存在的。没有浏览器提供的document、window和其他的对象。

然而在浏览器中,我们也没有 Node.js 的那些模块功能,例如文件系统功能等等。

另一个很大的区别是在 Node.js 中的环境是由我们自己来控制。别人永远不会知道我们的程序是运行在哪个版本的 Node.js 上。

与浏览器环境相比,我们无法去选择用户将使用的浏览器,这真的是非常的爽。

这就意味着我们可以选择最新的 Node.js 版本,以支持所有现代的 ES6-7-8-9-10,ES-Next的JavaScript。

由于 JavaScript 的更新速度之快(ECMAScript每年会更新一个版本),但浏览器升级速度可能有点慢,有时我们可能在 Web 上会被旧的 JavaScript / ECMAScript 版本所困扰(比如IE6-9)。

在将代码发布到浏览器之前,我们经常使用 Babel 将代码转换为与 ES5 兼容,但在 Node.js 中,我们就完全不需要这样做。

另一个区别是 Node.js 支持 CommonJS 和 ES 模块系统(从 Node.js v12 开始),而在浏览器中,我们开始看到 ES 模块逐渐在被支持,Chrome浏览器支持最快,在Chrome 63版本约2017年被支持,其他浏览器则在最近的两年时间才开始支持。

这就意味着我们可以在 Node.js 中同时使用 require() 和 import,而在新版本的浏览器中才可以使用 import。

这是一个最好的时代,你认为呢?

欢迎我的公众号【小帅的编程笔记】,让自己和他人都能有所收获!

分类:
前端
标签:
收藏成功!
已添加到「」, 点击更改