当前位置: 首页 > news >正文

javascript 编程基础(2)javascript与Node.js

文章目录

  • 一、Node.js 与 JavaScript
    • 1、基本概念
      • 1.1、JavaScript:动态脚本语言
      • 1.2、Node.js:JavaScript 运行时环境
    • 2、核心区别
    • 3、执行环境差异
      • 3.1、浏览器中的JavaScript
      • 3.2、Node.js中的JavaScript
    • 4、共同点
    • 5、为什么需要Node.js?

一、Node.js 与 JavaScript

1、基本概念

1.1、JavaScript:动态脚本语言

JavaScript 是一种高级的、解释型的编程语言,主要用于:

  • 为网页添加交互功能
  • 操作网页内容(DOM)
  • 处理用户事件
  • 与服务器通信(AJAX)
// 典型的浏览器端JavaScript
document.getElementById('btn').addEventListener('click', () => {alert('按钮被点击!');
});

1.2、Node.js:JavaScript 运行时环境

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,主要特点:

  • 让 JavaScript 能在服务器端运行
  • 提供非阻塞 I/O 和事件驱动架构
  • 包含丰富的内置模块(文件系统、HTTP等)
// 典型的Node.js代码
const http = require('http');
http.createServer((req, res) => {res.end('Hello Node.js!');
}).listen(3000);

2、核心区别

特性JavaScriptNode.js
运行环境浏览器服务器
主要用途前端开发后端开发
API访问浏览器API(DOM,BOM等)系统API(文件、网络等)
模块系统ES6模块(import/export)CommonJS(require)
全局对象windowglobal
典型应用网页交互Web服务器、CLI工具

3、执行环境差异

3.1、浏览器中的JavaScript

  • 受限于浏览器沙箱安全模型
  • 无法直接访问系统资源
  • 依赖浏览器提供的API
  • 主要用于响应用户交互

3.2、Node.js中的JavaScript

  • 可以访问本地文件系统
  • 能创建网络服务
  • 可以执行系统命令
  • 适合I/O密集型应用
// Node.js访问文件系统示例
const fs = require('fs');
fs.readFile('file.txt', 'utf8', (err, data) => {if (err) throw err;console.log(data);
});

4、共同点

尽管有上述区别,两者共享:

  • 相同的语言语法
  • 相同的数据类型
  • 相同的核心语言特性
  • 事件驱动编程模型

5、为什么需要Node.js?

  • 统一语言:前后端都使用JavaScript,降低学习成本
  • 高性能:非阻塞I/O适合高并发场景
  • 丰富的生态:npm拥有最大规模的包管理系统
  • 开发效率:代码复用和共享更方便

现代Web开发中,两者通常配合使用,JavaScript处理客户端逻辑,Node.js处理后端服务,共同构成完整的JavaScript全栈解决方案。

相关文章:

  • 关于VSCode按住Ctrl或Command点击鼠标左键不能跳转的问题
  • 2021-10-29 C++求位数及各位和
  • Canvas设计图片编辑器全讲解(一)Canvas基础(万字图文讲解)
  • 山东大学计算机图形学期末复习14——CG14下
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Progress Steps (步骤条)
  • redis的List为什么用ziplist和quicklist
  • GitHub 趋势日报 (2025年05月18日)
  • 学习记录:DAY29
  • 【HTML-1】HTML骨架标签:构建网页的基础框架
  • 百度OCR:证件识别
  • 【信息系统项目管理师】第10章:项目进度管理 - 48个经典题目及详解
  • 十三、面向对象底层逻辑-Dubbo序列化Serialization接口
  • React组件开发流程-03.1
  • 双指针算法:原理与应用详解
  • Notepad++ 学习(三)使用python插件编写脚本:实现跳转指定标签页(自主研发)
  • 龙芯中科2024年度业绩说明会:企稳向好,布局未来!
  • 抽奖相关功能测试思路
  • NIFI的处理器:PutDatabaseRecord 2.4.0
  • 【数据仓库面试题合集③】实时数仓建模思路与实践详解
  • C++_AVL树
  • 国家发改委谈稳定外资:将研究制定鼓励外资企业境内再投资政策措施
  • 安徽凤阳通报鼓楼瓦片脱落:2023年曾维修,已成立调查组
  • 让中小学生体验不同职业,上海中高职院校提供超5万个体验名额
  • 贵州茅台:支持工作餐不上酒的规定,请投资者相信茅台创新和自我调节能力
  • 4天内,云南昆明又一县市区原主官被查
  • 海南乐城管理局原局长贾宁已赴省政协工作,曾从河南跨省任职