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

news2024/9/23 21:27:54

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

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

 

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

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

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

 

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了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

让测试更轻松:学习Selenium进行Web应用程序自动化测试

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 摘要: 什么是Selenium 安装Selenium 编写自动化测试脚本 第一步:导入Selenium库 …

前端006_头部快捷导航_标签导航栏

效果如下,红色方框里面有快捷导航 1、添加标签栏导航组件 拷贝vue-element-admin 的 @/layout/components/TagsView 目录及文件到 mengxuegu-blog-admin 对应目录下 [root@pgdb vue-element-admin]# cp -r src/layout/components/TagsView ../db-manager-system/src/layou…

UE蓝图基础学习笔记(未完待续2023/05/06)

文章目录 一、项目创建1)准备流程(选择模板、开发语言、平台、质量等)2)界面介绍 二、Actor三、操作关卡对象(旋转、移动、缩放和坐标轴)四、常用快捷键五、运行游戏六、蓝图介绍七、蓝图节点八、操作事件图…

Vben Admin 自学记录 —— Drawer组件的基本使用及练习(持续更新中...)

Drawer 抽屉组件 对 antv 的 drawer 组件进行封装,扩展拖拽,全屏,自适应高度等功能。 Drawer相关使用及概念 练习 —— 在之前table基础上,添加查看功能,点击查看按钮,弹出抽屉显示单条表格数据&#xf…

基于80C51单片机的电子钟设计与仿真

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87761539?spm1001.2014.3001.5503 源码获取 主要内容: 电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比&#xf…

SpringBatch之实际操作

文章目录 1 SpringBatch操作1.1 SpringBatch介绍1.2 依赖配置相关1.2.1 pom.xml1.2.2 mysql 依赖库表1.2.3 启动配置1.2.4 数据库配置 1.3 示例Demo1.3.1 简单执行1.3.2 报错 1.4 流程控制1.4.1 多步骤任务1.4.2 Flow用法1.4.3 并发执行1.4.4 任务决策1.4.5 任务嵌套 1.5 数据操…

Illustrator如何使用图层与蒙版之实例演示?

文章目录 0.引言1.绘制可爱冰淇淋图标2.霓虹渐变立体文字海报3.炫彩花纹背景 0.引言 因科研等多场景需要进行绘图处理,笔者对Illustrator进行了学习,本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结,…

电影推荐算法2

模型创建 title _ count, title _ set, genres2int, features, targets _ values, ratings, users, movies, data, movies _ orig, users _ orig pickle.load (open (‘preprocess.p’, mode ‘rb’)) 加载数据后定义神经网络的模型结构: 1)定义参数…

u盘文件名乱码的恢复方法

文件名全部变乱码了怎么恢复?U盘数据恢复方法 电脑里的目录文件名乱码了,这是什么状况呢?好端端的电脑突然就成这个样子了,真是令人摸不着头脑,对于这样的状况,多半是文件类型引起的,那么接下来…

Python:Python进阶:Python整数与 Numpy的数据溢出

numpy数据溢出 1.python 3 的整数上限和 python 2 的整数上限1.1 python 2的整数范围1.2 python 3 的整数范围 2. numpy数值表示2.1 那么numpy支持的数据类型和 python有什么不同了2.2 如何解决整数溢出问题 总结 实验一:使用 numpy库来表示正数 import numpy as n…

redis(4)

1)使用StringTemplateRedis操作String类型 1)判断redis中是否拥有key所对应的值,如果有返回true,没有那么直接返回false redisTemplate.hasKey(key); 2)如果redis中有key那么直接取出key所对应的值 redisTemplate.opsForValue().get(key) 3)删除单个key值…

2023.05.07 学习周报

文章目录 摘要文献阅读1.题目2.现存问题和解决方法3.本文贡献及相关工作4.GRU5.模型5.1 SESSION-PARALLEL MINI-BATCHES5.2 SAMPLING ON THE OUTPUT5.3 RANKING LOSS 6.实验6.1 准备6.2 基线6.3 优化6.4 结果 7.结论 数学建模1.综合评价模型的一般步骤2.层次分析法3.主成分分析…

【Java】中的多线程线程锁

多线程 文章目录 多线程线程的创建和启动sleep()stop() 线程的休眠和中断线程的优先级线程的礼让和加入yield()stop() 线程锁和线程同步synchronized 关键字 死锁概念 wait & notify methodThreadLocal的使用定时器 Timer守护线程再谈集合类parallelStreamforEachOrdered()…

怎么将三张图片合成一张图片?

怎么将三张图片合成一张图片?遇到这个问题,我们其实有很多方法来处理。我们首当其冲想到的是其中最常见的,可以使用我们手机的APP来处理,比如某秀秀等。但是此方法比较适合于尺寸比较小的图片进行合并,如果图片比较大的…

Dockerfile创建镜像文件

Dockerfile Docker镜像原理 Linux文件系统有bootfs和rootfs两部分组成 Docker镜像由特殊文件系统叠加 最底端bootfs,使用宿主机bootfs 第二次时rootfs,被称为基础镜像 向上可以叠加其他镜像文件 同一文件系统能将多层整合成一层,隐藏了多层存在 镜像可以放置…

智能优化算法:鱼鹰优化算法-附代码

智能优化算法:鱼鹰优化算法 文章目录 智能优化算法:鱼鹰优化算法1. 鱼鹰优化算法1.1 初始化1.2 阶段一:定位和捕鱼(探索阶段)1.3 阶段二:把鱼带到合适的位置(开发阶段) 2.实验结果3.…

RISC-V U-Boot 启动 Linux 内核的参数

RISC-V U-Boot 启动 Linux 内核的参数 U-Boot (the Universal Boot Loader简写U-Boot) flyfish U-Boot 启动Linux内核的参数举例说明 RISC-V U-Boot 启动 Linux 内核的参数方式一 文本操作earlyprintksunxi-uart,0x02500000clk_ignore_unusedconsolettyS0,115200init/sbin/i…

go-resiliency源码解析之-batcher

go-resiliency源码解析之-batcher 源代码地址 : https://github.com/eapache/go-resiliency/blob/master/batcher/batcher.go 1.batcher定义 创建一个batch对象需要2个参数: Timeout:超时,这是一个batch对象收集输入参数的时间。 work函数变量:在ti…

使用Jumpserver+Frp集中管理远程内网服务器

我们设想这样一种情况,我们是一家小公司,在全国有几个小分支办公机构,每个机构有一台服务器,由于公司财务紧张,买不起专线,用的也是普通家用宽带,SD-WAN设备说实话也挺贵的,那么我们…

Docker部署MySQL主从复制架构

文章目录 1、准备工作2、下拉镜像,启动容器3、编辑 MySQL 主节点配置4、编辑 MySQL 从节点配置5、通过 Navicat 配置主节点6、通过 Navicat 配置从节点7、最终测试 1、准备工作 云服务器(虚拟机也可以)安装Docker,参考该文章第1小…