Node.js和在浏览器之中的不同

简介: Node.js和在浏览器之中的不同

在Node.js中编写JavaScript应用程序与在浏览器中为Web编程有何不同

1、在浏览器中,大多数时候您所做的是与DOM或其他Web平台API(如Cookie)进行交互。当然,Node.js中并不存在这些。您没有浏览器提供的文档、窗口和所有其他对象。

 

2、在浏览器中,我们没有Node.js通过其模块提供的所有漂亮的API,比如文件系统访问功能。

浏览器针对的是客户端,主要是对界面的支持,而node.js则是单独把v8引擎单独拿出来进行再次封装,使他达到后端语言的要求,而它对服务器系统进行打交道了,需要一些更底层的一些实现。

1. const fs = require('fs');
2. fs.stat('/Users/joe/test.txt', (err, stats) => {
3. if (err) {
4.    console.error(err);
5.   }
6.  console.error();
7. // we have access to the file stats in `stats`
8. });

 

3、Node.js 可以选择相对应的版本,去构建对应的应用程序,而在浏览器中,你无法决定用户去选择什么样的浏览器,这样也是不方便的。Node.js 和 浏览器底层都有类似的实现技术,但是浏览器运行在客户端,而Node.js 运行在服务端,在服务器端的环境,对用户而言都是一致的,反过来,就不一样了,每个用户浏览器版本可能都不一样,而我们又不可能去要求用户去统一浏览器版本。

4、Node.js 可以编写版本支持的所有现代ES6以上的代码,由于JavaScript的升级速度很快,一般浏览器支持的会比较慢,所以一些浏览器运行的还是低版本, 为了浏览器的兼容性,可能我们使用Babel将代码转换为与ES5兼容的代码,在Node.js中我们不需要这样操作。

5、另一个区别是Node.js同时支持CommonJS和ES模块系统(自Node.js v12以来),而在浏览器中,我们开始看到ES模块标准正在实现。

6、在实践中,这意味着您可以在Node.js中同时使用require() 和 import,而只能在浏览器中使用 import。

早期浏览器版本,是不支持import,而require()就更加不支持了,浏览器支持ES6之后,浏览器已经开始支持使用import了

相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
12天前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
10天前
|
存储 JavaScript 网络协议
浏览器与 Node 的事件循环
浏览器和Node.js的事件循环是异步操作的核心机制。它们通过管理任务队列和回调函数,确保程序在处理耗时任务时不会阻塞主线程,从而实现高效、响应式的应用开发。
|
10天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
16天前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
113 9
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
411 1
|
1月前
|
Web App开发 JavaScript 前端开发
JavaScript Window - 浏览器对象模型
JavaScript Window - 浏览器对象模型
21 2
|
29天前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
85 0
|
2月前
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
|
1月前
|
JavaScript 前端开发 开发者
JavaScript 浏览器控制台的使用
JavaScript 浏览器控制台的使用
18 0