什么是Node.js?

为什么JavaScript可以在浏览器中被执行?

  • 在浏览器中我们加载了一些待执行JS代码,这些字符串要当中一个代码去执行,是因为浏览器中有JavaScript的解析引擎,它的存在我们的代码才能被执行。

  • 不同的浏览器使用不同的javaScript解析引擎

    Chrome浏览器=> V8
    Firefox浏览器=> OdinMonkey (奥丁猴)
    Safri 浏览器=> JSCore
    IE 浏览器=> Chakra(查克拉)

    其中,chrome浏览器的V8解析引擎性能最好!

为什么JavaScript可以操作DOM和BOM?

  • 浏览器提供了很多的内置的API,DOM API、BOM API、AJAX API,我们程序员基于这些浏览器提供的内置API来编写出一些待执行的JavaScript代码,在这些javaScript代码中我们可以调用这些内置的Web API,然后我们可以把这些待执行的代码,交给我们的JavaScript解析引擎,来进行执行。

    在这里插入图片描述

    每个浏览器都内置了 DOM、BOM这样的API函数,因此,浏览器中的JavaScript 才可以调用它们。如果浏览器没有内置这些函数,那么javaScript就不能操作这些元素。

浏览器中的JavaScript运行环境

  • 运行环境是指代码正常运行所需的必要环境

    运行JavaScript代码需要有浏览器,浏览器里面必须要有javaScript解析引擎,以Chrome浏览器为例,它里面使用的是V8引擎,然后浏览器必须内置API,比如DOM、BOM、Canvas、XMLHttpRequest、Js内置对象。这样我们就可以通过JavaScript代码调用内置API,我们编写完的代码就可以通过V8引擎解析执行。

    总结:我们的js代码运行离不开,javaScript解析引擎和浏览器内置API。

    • V8引擎负责解析和执行JavaScript代码
    • 内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用。

JavaScript能否做后端开发?

  • 可以做后端开发的语言常见Java、Python、PHP。JavaScript也可以做后端,但是必须借助一个Node.js,也就是说我们不能单独使用JavaScript去做后端。
  • JavaScript单纯是一个语言,这门语言编写的代码想要去执行,就离不开一个执行环境,如果我们把JavaScript跑到浏览器中,浏览器本身就是一个运行环境,javaScript代码就可以在浏览器中做前端开发
  • 同时如果我们把写的代码运行在Node.js中,这个Node.js它也是一个运行环境,它是一个后端的运行环境,依赖于Node.js我们就可以去使用它做后端开发。

什么是Node.js?

  • Node.js是一个基于Chrome V8引擎的JavaScript后端运行环境。

  • Node.js官网地址:https://nodejs.org/zh-cn/

Node.js中的JavaScript运行环境和Chrome中运行环境的比较

  1. 环境:Node.js是一个基于V8引擎的服务器端JavaScript运行环境,而Chrome浏览器是一个客户端浏览器。Node.js提供了一些额外的功能和API,如文件系统访问、网络通信等,而浏览器则提供了与DOM相关的API。

  2. 全局对象:Node.js和浏览器中的全局对象有所不同。在Node.js中,全局对象是global,而在浏览器中,全局对象是window

  3. 模块系统:Node.js使用CommonJS模块系统,通过requiremodule.exports来导入和导出模块。而浏览器使用ES6模块系统,通过importexport来实现模块化。

  4. 文件系统访问:Node.js可以直接访问文件系统,可以读取、写入文件等操作,而浏览器由于安全性考虑,通常无法直接访问本地文件系统。

  5. 网络通信:Node.js可以进行网络通信,可以创建服务器、客户端等,而浏览器也可以进行网络通信,但受到跨域限制。

  6. 内置API:Node.js是一个基于V8引擎的服务器端JavaScript运行环境,它提供了一系列用于处理文件系统、网络通信、操作系统等功能的内置API,如fs模块、http模块等。这些API主要用于服务器端开发,与操作系统进行交互。而Chrome浏览器内置的API主要是Web API,用于操作DOM、处理事件、进行网络请求等,主要用于前端开发。例如,浏览器提供了document对象、XMLHttpRequest对象等用于操作网页内容和进行网络通信。

    在这里插入图片描述

    注意:

    • 浏览器是JavaScript的前端运行环境。
    • Node.js是JavaScript的后端运行环境
    • Node.js中无法调用DOM和BOM等浏览器内置API

Node.js可以做什么?

Node,js 作为一个JavaScript 的运行环境,仅仅提供了基础的功能和 API。然而,基于 Node.js 提供的这些基础能,很多强大的工具和框架如雨后春笋,层出不穷,学会了 Node.js,能干以下工作:

  1. 基于Express 框架(http://www.expressjs.com.cn/),可以快速构建 Web 应用
  2. 基于Electron 框架(https://electronis.org/),可以构建跨平台的桌面应用
  3. 基于restify框架(http://restify.com/),可以快速构建API 接口项目
  4. 读写和操作数据库、创建实用的命令行工具辅助前端开发…

补充:

‌Node.js的JavaScript运行环境‌,它允许开发者在服务器端运行JavaScript代码。Node.js采用事件驱动和非阻塞I/O模型,这使得它能够处理大量的并发连接,非常适合构建高性能的网络应用。‌

Node.js的核心机制:Node.js通过事件循环来处理并发操作,避免了额外的线程开销,从而提高了性能。它利用V8引擎执行JavaScript代码,这使得JavaScript可以在服务器端高效运行。

Node.js的应用场景和优势:Node.js非常适合构建‌实时应用、‌API服务器、‌等数据密集型应用。它的非阻塞I/O模型使得它能够处理成千上万的并发连接,非常适合微服务和云计算环境。

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

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

相关文章

数据结构之链表(1),单链表

目录 前言 一、什么是链表 二、链表的分类 三、单链表 四、单链表的实现 五、SList.c文件完整代码 六、使用演示 总结 前言 本文讲述了什么是链表,以及实现了完整的单链表。 ❤️感谢支持,点赞关注不迷路❤️ 一、什么是链表 1.概念 概念:链…

19、网络安全合规复盘

数据来源:5.网络安全合规复盘_哔哩哔哩_bilibili

精密制造的革新:光谱共焦传感器与工业视觉相机的融合

在现代精密制造领域,对微小尺寸、高精度产品的检测需求日益迫切。光谱共焦传感器凭借其非接触、高精度测量特性脱颖而出,而工业视觉相机则以其高分辨率、实时成像能力著称。两者的融合,不仅解决了传统检测方式在微米级别测量上的局限&#xf…

【C++】入门基础知识-1

🍬个人主页:Yanni.— 🌈数据结构:Data Structure.​​​​​​ 🎂C语言笔记:C Language Notes 🏀OJ题分享: Topic Sharing 目录 前言: C关键字 命名空间 命名空间介…

使用 Llama-index 实现的 Agentic RAG-Router Query Engine

前言 你是否也厌倦了我在博文中经常提到的老式 RAG(Retrieval Augmented Generation | 检索增强生成) 系统?反正我是对此感到厌倦了。但我们可以做一些有趣的事情,让它更上一层楼。接下来就跟我一起将 agents 概念引入传统的 RAG 工作流,重新…

凌晨1点开播!Meta Connect 2024开发者大会,聚焦Llama新场景和AR眼镜

作者:十九 编辑:李宝珠 北京时间 9 月 26 日凌晨 1 点,Meta Connect 2024 开发者大会即将举行,马克扎克伯格将聚焦 AI 和元宇宙,向大家分享 Llama 模型的更多潜在应用,并介绍 Meta 最新产品 AR 眼镜和 Meta…

OceanBase云数据库战略实施两年,受零售、支付、制造行业青睐

2022年OceanBase推出云数据库产品OB Cloud,正式启动云数据库战略。两年来OB Cloud发展情况如何,9月26日,OceanBase公有云事业部总经理尹博学向记者作了介绍。 尹博学表示,OB Cloud推出两年以来,已服务超过700家客户,客…

智算中心动环监控:构建高效、安全的数字基础设施@卓振思众

在当今快速发展的数字经济时代,智算中心作为人工智能和大数据技术的核心支撑设施,正日益成为各行业实现智能化转型的重要基石。为了确保这些高性能计算环境的安全与稳定,卓振思众动环监控应运而生,成为智算中心管理的重要组成部分…

理解Java引用数据类型(数组、String)传参机制的一个例子

目录 理解Java引用数据类型(数组、String)传参机制的一个例子理解样例代码输出 参考资料 理解Java引用数据类型(数组、String)传参机制的一个例子 理解 引用数据类型传递的是地址。用引用类型A给引用类型B赋值,相当于…

Linux(含麒麟操作系统)如何实现多显示器屏幕采集录制

技术背景 在操作系统领域,很多核心技术掌握在国外企业手中。如果过度依赖国外技术,在国际形势变化、贸易摩擦等情况下,可能面临技术封锁和断供风险。开发国产操作系统可以降低这种风险,确保国家关键信息基础设施的稳定运行。在一…

【C++位图】构建灵活的空间效率工具

目录 位图位图的基本概念如何用位图表示数据位图的基本操作setresettest 封装位图的设计 总结 在计算机科学中,位图(Bitmap)是一种高效的空间管理数据结构,广泛应用于各种场景,如集合操作、图像处理和资源管理。与传统…

一文读懂 Pencils Protocol 近期不可错过的市场活动

Pencils Protocol 是 Scroll 上综合性的 DeFi 协议,自 9 月 18 日开始其陆续在 Tokensoft、Bounce、Coresky 等平台开启 DAPP 通证的销售,并分别在短期内完成售罄。吸引了来自韩国、CIS、土耳其等 70 多个国家的 5 万多名认证用户,反响热烈&a…

Jmeter关联,断言,参数化

一、关联 常用的关联有三种 1.边界提取器 2.JSON提取器 3.正则表达式提取器 接下来就详细讲述一下这三种的用法 这里提供两个接口方便练习 登录接口 接口名称:登录 接口提交方式:POST 接口的url地址:https://admin-api.macrozheng.com/a…

C#常用数据结构栈的介绍

定义 在C#中&#xff0c;Stack<T> 是一个后进先出&#xff08;LIFO&#xff0c;Last-In-First-Out&#xff09;集合类&#xff0c;位于System.Collections.Generic 命名空间中。Stack<T> 允许你将元素压入栈顶&#xff0c;并从栈顶弹出元素。 不难看出&#xff0c;…

Vue引入js脚本问题记录(附解决办法)

目录 一、需求 二、import引入问题记录 三、解决方式 一、需求 我想在我的Vue项目中引入jquery.js和bootstrap.js这种脚本文件&#xff0c;但发现不能单纯的import引入&#xff0c;问题如下。 二、import引入问题记录 我直接这么引入&#xff0c;发现控制台报错TypeError: …

华为HarmonyOS地图服务 11 - 如何在地图上增加点注释?

场景介绍 本章节将向您介绍如何在地图的指定位置添加点注释以标识位置、商家、建筑等&#xff0c;并可以通过信息窗口展示详细信息。 点注释支持功能&#xff1a; 支持设置图标、文字、碰撞规则等。支持添加点击事件。 PointAnnotation有默认风格&#xff0c;同时也支持自定…

《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch9 策略梯度方法 Box 8.1 马尔可夫决策过程的平稳分布

Box 8.1&#xff1a; 马尔可夫决策过程的平稳分布 整理自 链接 分析平稳分布的关键工具是 P π ∈ R n n P_\pi \in {\mathbb R}^{n\times n} Pπ​∈Rnn&#xff0c;它是给定策略 π π π 下的概率转移矩阵。 如果状态被索引为 s 1 , ⋯ , s n s_1,\cdots, s_n s1​,⋯…

idea2021git从dev分支合并到主分支master

1、新建分支 新建一个名称为dev的分支&#xff0c;切换到该分支下面&#xff0c;输入新内容 提交代码到dev分支的仓库 2、切换分支 切换到主分支&#xff0c;因为刚刚提交的分支在dev环境&#xff0c;所以master是没有 3、合并分支 点击push&#xff0c;将dev里面的代码合并到…

图片尺寸不合适?这3款免费好用的AI绘图神器帮你免费无缝拓展!一键扩展画面之外的内容,真的泰裤啦!

大家好&#xff0c;我是灵魂画师向阳 在处理图片素材时&#xff0c;大家有没有遇到过尺寸不合适但又不能裁切的情况&#xff1f;是不是也想过图像要是能自己“长”出一块就好了&#xff1f;这种要求在以前或许很难实现&#xff0c;但生产式 AI 技术出现后它就不再是问题了&…

基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue

基于GIKT深度知识追踪模型的习题推荐系统 目录结构 Flask-BackEnd flask后端 app 后端主体文件 alg 深度学习模块 data 数据集data_process.py 数据预处理gikt.py GIKT模型pebg.py PEBG模型params.py 一些参数train.py 仅模型训练train_test.py 模型训练和测试-五折交叉验证t…