最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解NodeJS和Javascript之間有什么區(qū)別

 更新時(shí)間:2025年11月17日 09:02:37   作者:風(fēng)茫  
在前端和后端開發(fā)的技術(shù)棧中,JavaScript?和?Node.js?經(jīng)常是新手和經(jīng)驗(yàn)豐富的開發(fā)者討論的熱門話題,這篇文章主要介紹了NodeJS和Javascript之間有什么區(qū)別的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

這是一個(gè)非常經(jīng)典且重要的問題!Node.js 和 JavaScript 的關(guān)系不是“對(duì)立”或“并列”,而是“運(yùn)行環(huán)境”與“語(yǔ)言”的關(guān)系。下面從多個(gè)維度清晰解釋它們的區(qū)別與聯(lián)系。

一、一句話總結(jié)

JavaScript 是一門編程語(yǔ)言,Node.js 是一個(gè)能讓 JavaScript 在服務(wù)器端運(yùn)行的運(yùn)行時(shí)環(huán)境(Runtime)。

  • 瀏覽器中的 JavaScript → 用于操作網(wǎng)頁(yè)(DOM、動(dòng)畫、交互)
  • Node.js 中的 JavaScript → 用于開發(fā)后端服務(wù)(API、數(shù)據(jù)庫(kù)、文件系統(tǒng)等)

二、詳細(xì)對(duì)比

維度JavaScriptNode.js
本質(zhì)編程語(yǔ)言(ECMAScript 標(biāo)準(zhǔn))JavaScript 的運(yùn)行時(shí)環(huán)境(基于 V8 引擎)
運(yùn)行位置瀏覽器(Chrome、Firefox 等)服務(wù)器 / 本地計(jì)算機(jī)(脫離瀏覽器)
核心能力操作 DOM、處理用戶事件、AJAX 請(qǐng)求讀寫文件、訪問數(shù)據(jù)庫(kù)、啟動(dòng) HTTP 服務(wù)器、操作系統(tǒng)資源
全局對(duì)象window、documentnavigatorglobal、process__dirname、module
模塊系統(tǒng)ES Modules (import/export) 或 <script> 標(biāo)簽CommonJS (require/module.exports) + 支持 ES Modules
I/O 模型異步(但受限于瀏覽器 API)事件驅(qū)動(dòng) + 非阻塞 I/O(核心優(yōu)勢(shì))
典型用途網(wǎng)頁(yè)交互、前端框架(Vue/React)后端 API、微服務(wù)、腳本工具、實(shí)時(shí)應(yīng)用

三、關(guān)鍵區(qū)別詳解

1.運(yùn)行環(huán)境不同

  • JavaScript 最初設(shè)計(jì)用于瀏覽器,只能操作網(wǎng)頁(yè)元素。
    // 瀏覽器中有效
    document.getElementById('btn').click();
    alert('Hello');
    
  • Node.js 讓 JS 脫離瀏覽器,可以:
    // Node.js 中有效(瀏覽器中會(huì)報(bào)錯(cuò)?。?
    const fs = require('fs');
    fs.readFileSync('data.txt');
    

2.沒有 DOM / BOM

  • Node.js 沒有 window、document、localStorage 等瀏覽器對(duì)象
  • 你不能在 Node.js 中寫:
    // 在 Node.js 中會(huì)報(bào)錯(cuò):document is not defined
    document.querySelector('h1');
    

3.擁有系統(tǒng)級(jí) API

Node.js 提供了瀏覽器沒有的能力:

// 讀寫文件
const fs = require('fs');
fs.writeFileSync('log.txt', 'Hello Server');

// 啟動(dòng) HTTP 服務(wù)器
const http = require('http');
http.createServer((req, res) => {
  res.end('Hello from Node.js!');
}).listen(3000);

4.模塊系統(tǒng)差異

  • 瀏覽器:原生支持 ES Modules(import/export
    <script type="module">
      import { foo } from './utils.js';
    </script>
    
  • Node.js(傳統(tǒng)):使用 CommonJS
    // 導(dǎo)入
    const express = require('express');
    // 導(dǎo)出
    module.exports = { hello: 'world' };
    
  • 現(xiàn)代 Node.js(v14+):也支持 ES Modules(需 .mjs 后綴或 package.json 中設(shè) "type": "module"

四、它們的關(guān)系圖

                ┌───────────────────┐
                │   JavaScript      │ ← 編程語(yǔ)言(ECMAScript)
                └─────────┬─────────┘
                          │
        ┌─────────────────┼─────────────────┐
        ▼                 ▼                 ▼
┌─────────────┐   ┌──────────────┐   ┌──────────────┐
│   瀏覽器     │   │   Node.js    │   │  Deno / Bun  │
│ (Chrome等)   │   │ (服務(wù)器環(huán)境) │   │ (新運(yùn)行時(shí))   │
└─────────────┘   └──────────────┘   └──────────────┘

所以:Node.js 是 JavaScript 的“宿主環(huán)境”之一,就像瀏覽器一樣。

五、舉個(gè)實(shí)際例子

假設(shè)你要開發(fā)一個(gè)“用戶注冊(cè)”功能:

前端(瀏覽器中的 JavaScript)

// 發(fā)送注冊(cè)請(qǐng)求
fetch('/api/register', {
  method: 'POST',
  body: JSON.stringify({ email: 'user@example.com' })
});

后端(Node.js 中的 JavaScript)

// 接收請(qǐng)求,保存到數(shù)據(jù)庫(kù)
const express = require('express');
const app = express();

app.post('/api/register', (req, res) => {
  // 1. 驗(yàn)證數(shù)據(jù)
  // 2. 連接數(shù)據(jù)庫(kù)
  // 3. 保存用戶
  // 4. 返回結(jié)果
  res.json({ success: true });
});

?? 前后端都用 JavaScript,但運(yùn)行環(huán)境和能力完全不同!

常見誤區(qū)澄清

誤區(qū)正確理解
“Node.js 是一種新語(yǔ)言”Node.js 不是語(yǔ)言,是運(yùn)行時(shí)
“學(xué)了前端 JS 就會(huì) Node.js”語(yǔ)法相同,但 API 和思維模式不同(需學(xué) Node 特有模塊)
“Node.js 可以替代瀏覽器 JS”兩者用途不同,通常配合使用(全棧開發(fā))

總結(jié)

JavaScriptNode.js
是什么編程語(yǔ)言JS 運(yùn)行時(shí)
在哪跑瀏覽器服務(wù)器/本地
能做什么操作網(wǎng)頁(yè)操作文件、網(wǎng)絡(luò)、系統(tǒng)
是否依賴對(duì)方不依賴依賴 JS 語(yǔ)言

掌握這個(gè)區(qū)別,是邁向 全棧開發(fā) 牛馬的第一步!

到此這篇關(guān)于NodeJS和Javascript之間有什么區(qū)別的文章就介紹到這了,更多相關(guān)NodeJS和Js之間區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node中間層實(shí)現(xiàn)文件上傳功能

    node中間層實(shí)現(xiàn)文件上傳功能

    這篇文章主要介紹了node中間層實(shí)現(xiàn)文件上傳功能,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • 詳解Node使用Puppeteer完成一次復(fù)雜的爬蟲

    詳解Node使用Puppeteer完成一次復(fù)雜的爬蟲

    這篇文章主要介紹了詳解Node使用Puppeteer完成一次復(fù)雜的爬蟲,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • node.js利用express自動(dòng)搭建項(xiàng)目的全過程

    node.js利用express自動(dòng)搭建項(xiàng)目的全過程

    這篇文章主要給大家介紹了關(guān)于node.js利用express自動(dòng)搭建項(xiàng)目的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Node.js工具庫(kù)yeoman使用介紹

    Node.js工具庫(kù)yeoman使用介紹

    這篇文章主要為大家介紹了Node.js工具庫(kù)yeoman的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • node.js中的fs.chmodSync方法使用說明

    node.js中的fs.chmodSync方法使用說明

    這篇文章主要介紹了node.js中的fs.chmodSync方法使用說明,本文介紹了fs.chmodSync方法說明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nvm無法安裝低版本nodejs解決方案

    nvm無法安裝低版本nodejs解決方案

    因nvm升級(jí)后無法安裝低版本Node.js,下面這篇文章主要給大家介紹了關(guān)于nvm無法安裝低版本nodejs的解決方案,關(guān)鍵步驟包括卸載舊版nvm、下載低版本安裝包及配置環(huán)境變量,需要的朋友可以參考下
    2025-05-05
  • koa中間件核心(koa-compose)源碼解讀分析

    koa中間件核心(koa-compose)源碼解讀分析

    這篇文章主要介紹了koa中間件核心(koa-compose)源碼解讀分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 使用puppeteer破解極驗(yàn)的滑動(dòng)驗(yàn)證碼

    使用puppeteer破解極驗(yàn)的滑動(dòng)驗(yàn)證碼

    這篇文章主要介紹了利用puppeteer破解極驗(yàn)的滑動(dòng)驗(yàn)證功能,基本流程代碼實(shí)現(xiàn)給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-02-02
  • Nest.js參數(shù)校驗(yàn)和自定義返回?cái)?shù)據(jù)格式詳解

    Nest.js參數(shù)校驗(yàn)和自定義返回?cái)?shù)據(jù)格式詳解

    這篇文章主要給大家介紹了關(guān)于Nest.js參數(shù)校驗(yàn)和自定義返回?cái)?shù)據(jù)格式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Nodejs實(shí)現(xiàn)獲取實(shí)時(shí)數(shù)據(jù)的三種主流方式詳解

    Nodejs實(shí)現(xiàn)獲取實(shí)時(shí)數(shù)據(jù)的三種主流方式詳解

    這篇文章主要為大家詳細(xì)介紹了Nodejs前端獲取實(shí)時(shí)數(shù)據(jù)的三種主流方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02

最新評(píng)論

双牌县| 普宁市| 鹤壁市| 忻州市| 邮箱| 南川市| 始兴县| 扎赉特旗| 聂拉木县| 锡林浩特市| 建水县| 祁门县| 津市市| 密山市| 垦利县| 定远县| 广宁县| 泰顺县| 淄博市| 怀仁县| 沛县| 乐东| 广宗县| 惠州市| 土默特左旗| 海淀区| 宁明县| 平度市| 自贡市| 将乐县| 茂名市| 观塘区| 元朗区| 东乌珠穆沁旗| 淮安市| 湄潭县| 开原市| 江山市| 南召县| 老河口市| 宿州市|