JavaScript(简称JS)是一种动态的、基于原型的编程语言,主要用于网页开发,但也可以用于服务器端编程、移动应用开发等。

它是一种解释性语言,通常在用户的浏览器中运行,使网页能够实现交互功能。
JavaScript 是开发人员用来制作交互式网页的编程语言。从刷新社交媒体馈送到显示动画和交互式地图,JavaScript 函数可以改善网站的用户体验。作为一种客户端脚本语言,它是万维网的核心技术之一。例如,在浏览互联网时,每当您看到图像轮播、点击显示的下拉菜单或网页上动态更改的元素颜色时,就是 JavaScript 提供的效果。
当前的 JavaScript 生态系统拥有许多库和框架、已建立的编程实践以及在 Web 浏览器之外大量使用 JavaScript。另外,随着单页应用程序和其他大量使用 JavaScript 的网站的兴起,已经创建了多个转译器来帮助开发过程。
一般来说,完整的JavaScript包括以下几个部分:
- ECMAScript,描述了该语言的语法和基本对象;
- 文档对象模型(DOM),描述处理网页内容的方法和接口;
- 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
JavaScript的基本特点如下:
- 是一种解释性脚本语言(代码不进行预编译);
- 主要用来向HTML页面添加交互行为;
- 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
JavaScript常用来完成以下任务:
- 嵌入动态文本于HTML页面;
- 对浏览器事件作出响应;
- 读写HTML元素;
- 在数据被提交到服务器之前验证数据;
- 检测访客的浏览器信息;
- 控制Cookie,包括创建和修改等;
一、JavaScript 的用途是什么?
很早以前,网页是静态的,类似于书中的页面。静态页面主要以固定的布局显示信息,无法完成我们现在对现代网站所期望的一切功能。JavaScript 作为浏览器端技术出现,使 Web 应用程序更加动态。使用 JavaScript,浏览器可以响应用户交互并改变网页上的内容布局。
随着语言不断成熟,JavaScript 开发人员建立了库、框架和编程实践,并开始在 Web 浏览器之外使用。今天,您可以使用 JavaScript 进行客户端和服务器端开发。我们在以下小节中提供了一些常见使用案例:
很早以前,网页是静态的,类似于书中的页面。静态页面主要以固定的布局显示信息,无法完成我们现在对现代网站所期望的一切功能。JavaScript 作为浏览器端技术出现,使 Web 应用程序更加动态。使用 JavaScript,浏览器可以响应用户交互并改变网页上的内容布局。
随着语言不断成熟,JavaScript 开发人员建立了库、框架和编程实践,并开始在 Web 浏览器之外使用。今天,您可以使用 JavaScript 进行客户端和服务器端开发。
1.1. 前端开发(Web 开发) 🌍
JavaScript 是前端开发的核心语言,与 HTML 和 CSS 共同构成了 Web 开发的三大支柱。它的主要作用是让网页具有交互性和动态效果,如:
- 动态更新内容(如新闻列表、社交媒体动态)
- 表单验证(如输入框校验、错误提示)
- 事件处理(如按钮点击、鼠标悬停、键盘输入)
- 动画和特效(如轮播图、弹出窗口、滚动动画)
- AJAX & Fetch(异步请求数据,无需刷新页面)
示例
document.getElementById("btn").addEventListener("click", function() { alert("按钮被点击了!"); });
📌 框架 & 库:React.js、Vue.js、Angular.js、jQuery
1.2. 后端开发(服务器端) 🖥️
JavaScript 不仅用于前端开发,还可以用于后端开发,最常见的是Node.js,它可以用于:
- 构建 Web 服务器
- 处理数据库(如 MongoDB、MySQL)
- 开发 RESTful API
- 服务器端渲染(SSR)
示例(使用 Node.js 搭建服务器)
📌 相关技术:Node.js、Express.js、NestJS
1.3. 移动端开发(App 开发) 📱
JavaScript 也可以用于移动应用开发,一些框架可以让你使用 JavaScript 开发跨平台的 iOS 和 Android 应用,如:
示例(React Native 代码)
1.4. 桌面应用开发 💻
JavaScript 也可以用于桌面应用开发,结合 HTML 和 CSS,可以创建跨平台的桌面软件,例如:
- Electron.js:用于开发桌面应用(如 VS Code、Slack)
示例(Electron 创建桌面应用)
1.5. 游戏开发 🎮
JavaScript 也可以用于游戏开发,尤其是基于 Web 的 2D/3D 游戏。一些流行的游戏引擎包括:
示例(使用 Three.js 创建 3D 立方体)
1.6. 人工智能 & 机器学习 🤖
JavaScript 也能用于机器学习和人工智能,一些库提供了强大的 AI 计算能力,如:
- TensorFlow.js:在浏览器中运行机器学习模型
- Brain.js:用于神经网络训练
示例(使用 TensorFlow.js 进行简单 AI 计算)
1.7. 物联网(IoT) 🌍
JavaScript 也可以用于物联网(IoT),结合Node.js 和 Raspberry Pi,可以控制智能家居、机器人等。
📌 相关技术:Johnny-Five、Cylon.js
示例(使用 Johnny-Five 控制 LED)
1.8 总结 🎯
用途 | 技术 & 框架 |
---|---|
前端开发 | React.js, Vue.js, Angular.js, jQuery |
后端开发 | Node.js, Express.js, NestJS |
移动开发 | React Native, Ionic, Cordova |
桌面应用 | Electron.js |
游戏开发 | Phaser.js, Three.js, Babylon.js |
AI & 机器学习 | TensorFlow.js, Brain.js |
物联网(IoT) | Johnny-Five, Cylon.js |
JavaScript 是一门通用性很强的编程语言,几乎可以用于任何类型的开发。如果你想成为一名 Web 开发者,JavaScript 是必须掌握的语言!
二、JavaScript 如何工作?
所有编程语言的工作原理都是将类似英语的语法翻译成机器代码,然后由操作系统运行。JavaScript 被广泛归类为脚本语言或直译式语言。JavaScript 代码被解释,即由 JavaScript 引擎直接翻译成底层机器语言代码。而其他编程语言是通过编译器在单独的步骤中将整个代码编译成机器代码。因此,所有的脚本语言都是编程语言,但不是所有的编程语言都是脚本语言。
2.1)JavaScript 引擎
JavaScript 引擎是运行 JavaScript 代码的计算机程序。第一个 JavaScript 引擎仅仅是解释器,但所有现代引擎都使用实时或运行时编译来提高性能。
2.2)客户端 JavaScript
客户端 JavaScript 指的是 JavaScript 在浏览器中的工作方式。在这种情况下,JavaScript 引擎位于浏览器代码内部。所有主流的 Web 浏览器都自带内置的 JavaScript 引擎。
Web 应用程序开发人员使用与各种事件(例如鼠标点击或鼠标悬停)相关联的不同函数编写 JavaScript 代码。这些函数对 HTML 和 CSS 进行修改。
以下是客户端 JavaScript 工作方式的概述:
1. 当您访问网页时,浏览器会加载该网页。
2. 在加载过程中,浏览器将页面及其所有元素(例如按钮、标签和下拉框)转换为一种称为文档对象模型(DOM)的数据结构。
3. 浏览器的 JavaScript 引擎将 JavaScript 代码转换成字节码。这段代码是 JavaScript 语法和计算机之间的中介。
4. 鼠标点击按钮等不同的事件触发相关 JavaScript 代码块的执行。然后,引擎解释字节码并对 DOM 进行修改。
5. 浏览器显示新的 DOM。
2.3)服务器端 JavaScript
服务器端 JavaScript 指的是后端服务器逻辑中编码语言的使用。在这种情况下,JavaScript 引擎直接位于服务器上。服务器端 JavaScript 函数可以访问数据库,执行不同的逻辑操作,并响应服务器操作系统触发的各种事件。服务器端脚本的主要优势在于,您可以根据自己的需求、访问权限和网站的信息请求高度定制网站响应。
2.4)客户端与服务器端
动态一词描述了客户端和服务器端的 JavaScript。动态行为是根据需要更新网页显示以生成新内容的能力。客户端和服务器端 JavaScript 的区别在于它们生成新内容的方式。服务器端代码通过使用应用程序逻辑和修改数据库中的数据来动态生成新内容。另一方面,客户端 JavaScript 通过使用用户界面逻辑并修改客户端上已有的网页内容,在浏览器中动态生成新内容。这两种情况下的含义略有不同,但却是相关的,而且这两种方法共同增强了用户体验。
除了动态功能的实现之外,这两种 JavaScript 用法的另一个区别是代码可以访问的资源。在客户端,浏览器控制 JavaScript 的运行时环境。代码只能访问浏览器允许它访问的资源。例如,除非您点击下载按钮,否则它不能将内容写入您的硬盘。另一方面,服务器端函数可以根据需要访问服务器计算机的所有资源。
三、什么是 JavaScript 库?
JavaScript 库是预先编写的代码片段的集合,Web 开发人员可以重用这些代码片段来执行标准的 JavaScript 函数。JavaScript 库代码根据需要插入到项目的其余代码中。如果您将 JavaScript 应用程序代码想象成一座房子,那么 JavaScript 库就像现成的家具,开发人员可以用它来改善房子的功能。JavaScript 库(Library) 是一组预定义的函数和工具,用于简化 JavaScript 编程,提高开发效率。它们通常封装了常见的功能,让开发者可以直接调用,而不需要从零编写复杂的代码。
JavaScript 库的特点
✅ 封装常用功能(如 DOM 操作、动画、网络请求等)
✅ 代码简洁(减少重复代码,提升可读性)
✅ 提高开发效率(避免重复造轮子)
✅ 跨浏览器兼容(解决不同浏览器的兼容性问题)
常见的 JavaScript 库
3.1) jQuery(简化 DOM 操作)
作用:简化 HTML 文档操作、事件处理、动画和 AJAX 请求。
📌 适用于:老项目维护,快速开发。
📌 不适用于:现代前端框架(如 React/Vue)。
示例(jQuery 简化 DOM 操作)
// 普通 JavaScript 写法 document.getElementById("btn").addEventListener("click", function() { document.getElementById("text").innerText = "Hello, jQuery!"; }); // 使用 jQuery $("#btn").click(function() { $("#text").text("Hello, jQuery!"); });
📌 官网:https://jquery.com/
3.2) Lodash(工具函数库)
作用:提供常见的数组、对象、函数、字符串等操作方法,避免手写复杂逻辑。
📌 适用于:数据处理、函数式编程。
示例(Lodash 使用)
const _ = require("lodash"); const numbers = [1, 2, 3, 4, 5, 6]; const evens = _.filter(numbers, n => n % 2 === 0); console.log(evens); // [2, 4, 6]
📌 官网:https://lodash.com/
3.4) Axios(HTTP 请求库)
作用:简化 AJAX 请求,支持Promise 和 async/await,比原生 fetch
更强大。
📌 适用于:前后端数据交互(REST API、GraphQL)。
示例(使用 Axios 发送 HTTP 请求)
axios.get("https://jsonplaceholder.typicode.com/posts/1") .then(response => console.log(response.data)) .catch(error => console.error(error));
3.5)Moment.js(日期处理库) ⏳(已被 Day.js 替代)
作用:简化时间格式化、计算、解析等操作。
📌 适用于:老项目,日期时间计算。
📌 推荐替代:Day.js(体积更小)
示例(格式化日期)
const moment = require("moment"); console.log(moment().format("YYYY-MM-DD HH:mm:ss")); // 输出:2025-03-14 12:30:45
3.6) Chart.js(数据可视化库) 📊
作用:轻量级数据可视化库,可用于创建折线图、柱状图、饼图等。
📌 适用于:简单的图表展示,不需要复杂交互。
示例(创建折线图)
const ctx = document.getElementById("myChart").getContext("2d"); const myChart = new Chart(ctx, { type: "line", data: { labels: ["Jan", "Feb", "Mar", "Apr"], datasets: [{ label: "Sales", data: [10, 20, 30, 40], borderColor: "blue", borderWidth: 2 }] } });
3.7)库 vs 框架
比较项 | JavaScript 库 | JavaScript 框架 |
---|---|---|
定义 | 一组工具函数,用于特定功能,如 DOM 操作、数据处理等 | 提供完整的应用结构,如组件、路由、状态管理等 |
控制权 | 你决定如何使用它 | 框架决定代码结构和工作方式 |
示例 | jQuery, Lodash, Axios | React, Vue, Angular |
适用场景 | 只需特定功能 | 需要完整的前端架构 |
📌 结论:如果你只是想增强 JavaScript 代码的功能,可以使用库。如果你需要构建整个应用程序,通常使用框架。
3.8)总结
JavaScript 库可以大大提高开发效率,减少代码重复。不同的库适用于不同的应用场景:
类别 | 流行库 | 用途 |
---|---|---|
DOM 操作 | jQuery | 处理 HTML 元素 |
工具函数 | Lodash | 数据处理 |
HTTP 请求 | Axios | 获取 API 数据 |
日期时间 | Moment.js / Day.js | 处理日期 |
数据可视化 | Chart.js / D3.js | 绘制图表 |
如果你刚开始学习 JavaScript,建议先掌握原生 JavaScript,然后再根据需求使用适合的库!
3.9)JavaScript 库的一些常见用途
- 数据可视化
数据可视化对于用户查看统计数据至关重要,例如,在管理面板、控制面板和性能指标中。
Chart.js、ApexCharts 和 Algolia Places 等库具有内置函数,可用于创建在图表和地图中显示数据的 Web 应用程序。
- DOM 操作
您可以使用 jQuery 和 Umbrella JS 等库来简化 Web 开发,因为它们提供了标准网站函数的代码,例如菜单动画、图像库、按钮、灯箱等。
- 表单
- 数学和文本函数
四、什么是 JavaScript 框架?
JavaScript 框架(Framework) 是一组预定义的代码结构和工具,用于帮助开发者更高效地构建前端或后端应用。
相比于 JavaScript 库(Library),框架提供了一整套架构和工作流,让开发者按照框架的方式组织代码,而不是自己去设计代码结构。
4.1)JavaScript 框架 vs. JavaScript 库
对比项 | JavaScript 框架(Framework) | JavaScript 库(Library) |
---|---|---|
定义 | 提供完整的应用架构,规定代码组织方式 | 只提供特定功能,如 DOM 操作、数据处理等 |
控制权 | 框架决定代码如何运行(“框架调用代码”) | 开发者决定如何使用库(“代码调用库”) |
示例 | React、Vue、Angular | jQuery、Lodash、Axios |
适用场景 | 需要构建整个应用 | 只需增强 JavaScript 功能 |
📌 通俗理解:
- 框架 就像装修公司,提供一整套方案,你必须按它的方式装修房子。
- 库 就像家居商店,你可以自由选择工具和家具,按照自己的想法装修。
4.2)常见的 JavaScript 框架
4.2.1. React(前端框架,UI 组件库)
📌 特点:
✅ 由 Facebook(Meta)开发,组件化开发模式
✅ 使用虚拟 DOM 提高性能
✅ 生态系统丰富,如 Next.js(SSR 框架)
📌 适用于:
✅ 现代 Web 应用,如单页应用(SPA)
✅ 需要高性能和灵活性的项目
示例(React 组件)
import React from "react"; function App() { return <h1>Hello, React!</h1>; } export default App;
📌 官网:https://react.dev/
4.2.2. Vue.js(前端框架)
📌 特点:
✅ 轻量级,语法简洁,学习曲线低
✅ 双向数据绑定(v-model)
✅ 适合渐进式开发,可用于小型项目
📌 适用于:
✅ 需要快速上手的 Web 应用
✅ 适合小型到中型项目
示例(Vue 组件)
📌 官网:https://vuejs.org/
4.2.3. Angular(前端框架)
📌 特点:
✅ 由 Google 开发,适用于大型应用
✅ 完整 MVC 结构(包括数据、视图、逻辑)
✅ 双向数据绑定,内置 TypeScript
📌 适用于:
✅ 企业级应用(后台管理系统、ERP、CRM)
✅ 需要严格结构化的项目
示例(Angular 组件)
import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: `<h1>{{ message }}</h1>` }) export class AppComponent { message = "Hello, Angular!"; }
📌 官网:https://angular.io/
4.2.4. Node.js(后端框架)
📌 特点:
✅ 服务器端 JavaScript 运行环境
✅ 基于事件驱动 & 非阻塞 I/O,高性能
✅ 适用于构建 API、Web 服务器、实时应用
📌 适用于:
✅ 服务器端应用(REST API、WebSocket)
✅ 高并发应用(如聊天、实时通知)
示例(Node.js 服务器)
const http = require("http"); http.createServer((req, res) => { res.writeHead(200, { "Content-Type": "text/plain" }); res.end("Hello, Node.js!"); }).listen(3000);
📌 官网:https://nodejs.org/
4.2.5. Express.js(后端框架,基于 Node.js)
📌 特点:
✅ 轻量级 Web 服务器框架,基于 Node.js
✅ 提供路由管理、中间件支持
✅ 适用于REST API 开发
📌 适用于:
✅ 需要快速搭建 API 服务
✅ 适用于小型到中型后端项目
示例(Express.js API 服务器)
const express = require("express"); const app = express(); app.get("/", (req, res) => { res.send("Hello, Express!"); }); app.listen(3000, () => console.log("Server running on port 3000"));
4.3) JavaScript 框架对比
框架 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
React | 单页应用(SPA),高交互界面 | 组件化、性能高、生态丰富 | 需要 JSX 语法,学习曲线较陡 |
Vue.js | 小型到中型项目 | 轻量、双向绑定、易学 | 生态相对 React 较小 |
Angular | 企业级应用(ERP、CRM) | MVC 结构、强类型(TypeScript) | 学习成本高,体积较大 |
Node.js | 后端开发(实时应用) | 高性能、异步 I/O | 需要理解事件驱动 |
Express.js | REST API、服务器开发 | 轻量、简单易用 | 需要手动配置更多功能 |
4.4)如何选择 JavaScript 框架?
✅ 如果你是初学者 → Vue.js(简单易学)
✅ 如果你想做前端开发 → React(市场需求大,生态完善)
✅ 如果你要做大型企业项目 → Angular(结构化开发)
✅ 如果你要开发后端 API → Express.js(轻量、快速)
JavaScript 框架帮助开发者更高效地构建应用,不同框架适用于不同场景。选择最适合你的需求的框架,提升开发效率!
4.5)JavaScript 框架的一些使用案例
- Web 和移动应用程序开发
AngularJS 是一个框架,它简化了 Web 应用程序的开发和测试,例如电子商务应用程序、实时应用程序和视频应用程序。React Native 是另一个支持 iOS 和 Android 原生呈现移动应用程序开发的框架。
- 响应式 Web 开发
响应式网站可在任何设备上提供一致的用户体验。例如,移动设备和平板电脑的屏幕小于台式机和笔记本电脑的屏幕。您希望网站在较小的屏幕上也能准确地显示和呈现数据,例如,不要剪掉网站的两端。使用 Bootstrap 和 Ember.js 等框架,开发人员可以从响应式设计中受益,并轻松地跨不同平台定制网站的外观。
- 服务器端应用程序开发
Node.js 是一个服务器端的开源 JavaScript 框架,它在浏览器之外运行 JavaScript 代码。开发人员使用这个框架来构建可扩展、快速、可靠的基于网络的服务器端应用程序。它可以处理 HTTP 请求和数据流,支持文件系统,并同时管理多个后端进程。
五、什么是 HTML 和 CSS?
HTML 和 CSS 是什么?
HTML 和 CSS 是构建网页的两种最基础的前端技术:
- HTML(超文本标记语言,HyperText Markup Language):用于定义网页的结构和内容。
- CSS(层叠样式表,Cascading Style Sheets):用于控制网页的外观和布局。
🚀 简单理解:
HTML 是 骨架,决定网页上有什么内容;CSS 是 皮肤,决定网页内容的外观。
5.1)什么是 HTML?
📌 HTML(HyperText Markup Language) 是一种标记语言,用于描述网页的结构。
📌 HTML 的作用
✅ 定义网页的结构(标题、段落、图片、链接等)
✅ 组织和展示网页上的内容
✅ 通过 HTML 元素(标签)创建网页
📌 HTML 代码示例
📌 解释:
<!DOCTYPE html>
:声明 HTML5 文档类型<html>
:HTML 文档的根元素<head>
:网页的元数据(标题、CSS、JavaScript 等)<title>
:网页的标题,显示在浏览器标签上<body>
:网页的主体内容<h1>
:标题(h1
–h6
,h1
最大)<p>
:段落<a>
:超链接
5.2)什么是 CSS?
📌 CSS(Cascading Style Sheets) 是用于控制网页外观的样式表语言。
📌 CSS 的作用
✅ 控制网页的颜色、字体、背景等
✅ 设置网页的布局,如居中、网格、弹性布局
✅ 提高代码复用性,让多个页面使用相同的样式
📌 CSS 代码示例
📌 解释:
background-color
:设置背景颜色font-family
:定义字体样式color
:设置文本颜色text-align
:文本对齐方式font-size
:字体大小line-height
:行间距
5.3) HTML + CSS 结合使用
📌 HTML 提供结构,CSS 美化页面
📌 运行效果:
🔹 页面背景变成灰色
🔹 标题 h1
蓝色,居中
🔹 文字字体变为 Arial
5.4) HTML 和 CSS 的关系
对比项 | HTML | CSS |
---|---|---|
作用 | 结构化内容 | 美化和布局 |
示例 | <h1>标题</h1> |
h1 { color: red; } |
影响 | 页面有内容但很丑 | 页面更美观但无内容 |
谁用它? | 前端开发、SEO | 前端开发、UI 设计 |
5.5)CSS 的 3 种使用方式
5.5.1. 内联 CSS(inline style)
📌 直接在 HTML 标签内编写 CSS
📌 适用于:临时修改某个元素的样式
📌 缺点:不利于代码复用,影响可维护性
5.5.2. 内部 CSS(internal style)
📌 在 HTML <style>
标签内编写 CSS
📌 适用于:单个 HTML 页面的小型样式
5.5.3. 外部 CSS(external style)
📌 将 CSS 代码写在单独的 .css
文件中,并在 HTML 中引入
🔹 创建 style.css
🔹 在 HTML 文件中引用
📌 适用于:大型项目,推荐使用外部 CSS 文件,便于复用和维护
5.6. HTML 和 CSS 在网页开发中的作用
开发阶段 | 技术 | 作用 |
---|---|---|
结构 | HTML | 定义网页内容(文本、图片、按钮等) |
样式 | CSS | 控制页面布局、颜色、字体等 |
交互 | JavaScript | 让网页具有动态功能(如按钮点击、动画) |
5.7. 总结
✅ HTML 负责网页的结构(”骨架”)
✅ CSS 负责网页的外观(”皮肤”)
✅ JavaScript 负责交互(”大脑”)
如果你是初学者,建议先学 HTML,再学 CSS,最后学习 JavaScript,让网页更有趣!
六、JavaScript的主要特点:
- 脚本语言:不需要编译,直接在浏览器中执行。
- 动态类型:变量可以存储任何类型的数据,类型是在运行时确定的。
- 基于原型(Prototype-based):与基于类的语言不同,JS使用原型继承。
- 事件驱动:可以响应用户的操作,如点击、滚动、键盘输入等。
- 跨平台:支持多个平台(Windows、Mac、Linux 等),无需额外安装。
- 异步编程:支持回调函数、Promise、async/await 等机制,提高执行效率。
七、JavaScript的主要应用场景
- 网页交互:点击按钮、动态更新页面内容、表单验证等。
- 前端开发:结合 HTML、CSS,创建动态网页(如 React、Vue、Angular)。
- 后端开发:使用 Node.js 构建服务器端应用。
- 移动开发:使用 React Native、Ionic 等框架开发移动应用。
- 游戏开发:用 Three.js、Phaser 等库开发 Web 游戏。
- Web API 调用:与服务器通信(如 AJAX、Fetch API)。
实例:
// 输出 Hello, JavaScript! 到控制台 console.log("Hello, JavaScript!"); // 定义变量 let name = "小明"; let age = 25; // 创建一个函数 function greet(person) { return "你好, " + person + "!"; } // 调用函数 console.log(greet(name)); // 输出:你好, 小明!
九、JavaScript 有哪些优势?
-
易于学习和使用
-
获得平台独立性
与其他编程语言不同,您可以将 JavaScript 插入到任何网页中,并与许多其他 Web 开发框架和语言一起使用。JavaScript 代码编写之后,您就可以在任何机器上运行。因此,JavaScript 使应用程序开发独立于平台。
-
降低服务器负载
您可以使用 JavaScript 来降低服务器负载和减少网络拥塞,因为它可以运行逻辑操作,并在客户端上完成服务器的大量工作。例如,想一下填写注册表单的过程。JavaScript 会快速检查您是否在移动电话字段中输入了 10 位数字。如果这些请求被发送到服务器,您的页面将为每个错误重新加载,使注册过程非常缓慢而且冗长乏味。
-
改进用户界面
JavaScript 可以创建美观的网站,方便查找和处理复杂的信息。开发人员应用 JavaScript 来扩展功能和可读性,并使网站用户交互更加高效。
-
支持并发
JavaScript 可以并行运行几组不同的指令。在后端,Node.js 可以处理高度扩展的服务器响应,而不会消耗同样多的带宽。
十、什么是 TypeScript?
TypeScript(简称 TS) 是 JavaScript 的 超集(Superset),它扩展了 JavaScript,增加了静态类型检查(Static Typing),使代码更安全、更易维护。
- 开发者:由 微软(Microsoft) 开发和维护。
- 语法特点:在 JavaScript 基础上增加了类型系统、接口(Interfaces) 和 面向对象编程(OOP) 特性。
- 目标:最终会被编译成 JavaScript 在浏览器或 Node.js 环境中运行。
10.1) TypeScript 与 JavaScript 的区别
对比项 | JavaScript(JS) | TypeScript(TS) |
---|---|---|
类型系统 | 无类型检查,运行时报错 | 编译时检查类型错误,减少 bug |
可读性 | 代码自由,容易出错 | 代码更规范,易于维护 |
OOP 支持 | 仅支持 ES6 语法 | 原生支持接口、枚举、泛型等 |
安全性 | 运行时发现错误 | 编译时发现错误 |
运行环境 | 直接在浏览器或 Node.js 运行 | 需要先编译成 JavaScript |
📌 简单理解:
- JavaScript 就像写随笔,自由度高,但容易出错。
- TypeScript 就像写论文,有严格格式检查,确保不会犯低级错误。
10.2) TypeScript 代码示例
✅ JavaScript 代码
function add(a, b) { return a + b; } console.log(add(10, "20")); // "1020"(JS 自动拼接字符串)
✅ TypeScript 代码
function add(a: number, b: number): number { return a + b; } // console.log(add(10, "20")); // ❌ 编译错误 console.log(add(10, 20)); // ✅ 正确运行,输出 30
✅ 优势:TypeScript 提前检测错误,避免运行时报错。
10.3) TypeScript 的核心特性
✅ 1. 静态类型检查
TypeScript 允许为变量、函数参数和返回值指定类型:
let age: number = 25; // 只能是数字 let name: string = "Tom"; // 只能是字符串 let isStudent: boolean = true; // 只能是布尔值
🔴 错误示例:
let age: number = "25"; // ❌ 错误:字符串不能赋值给 number 类型
✅ 2. 接口(Interfaces)
接口用于定义对象的结构,让代码更规范:
interface Person { name: string; age: number; } let user: Person = { name: "Alice", age: 30 }; // ✅ 正确 // let user2: Person = { name: "Bob" }; // ❌ 报错:缺少 age 属性
✅ 3. 类(Classes)
TypeScript 支持完整的面向对象编程(OOP),包括类、继承等:
class Animal { name: string; constructor(name: string) { this.name = name; } speak(): void { console.log(`${this.name} 发出了声音`); } } class Dog extends Animal { speak(): void { console.log(`${this.name} 汪汪!`); } } let myDog = new Dog("旺财"); myDog.speak(); // 输出:旺财 汪汪!
✅ 4. 泛型(Generics)
泛型使函数或类能适应不同的数据类型,提高代码复用性:
function identity<T>(arg: T): T { return arg; } console.log(identity<string>("Hello")); // ✅ 输出: Hello console.log(identity<number>(100)); // ✅ 输出: 100
📌 作用:适用于数据类型不确定的情况,比如数组、函数参数等。
10.4) TypeScript 代码如何运行?
TypeScript 不能直接运行,必须编译成 JavaScript 之后才能在浏览器或 Node.js 中运行。
✅ 安装 TypeScript
npm install -g typescript # 全局安装 TypeScript
✅ 编译 TypeScript
tsc myfile.ts # 编译 myfile.ts 生成 myfile.js
✅ 运行编译后的 JavaScript
node myfile.js # 在 Node.js 运行
10.5) TypeScript 适用于哪些场景?
✅ 前端开发:与 React、Vue、Angular 结合,提升代码安全性
✅ 后端开发:与 Node.js 结合,编写安全的服务器代码
✅ 大规模项目:团队协作,减少 Bug,提高可维护性
✅ 全栈开发:使用 TypeScript 统一前后端技术栈
10.6) TypeScript 与 JavaScript 框架的结合
框架 | 支持 TypeScript 吗? | 特点 |
---|---|---|
React | ✅ 强烈推荐 | 使用 TypeScript 提高组件类型安全性 |
Vue | ✅ 支持 | Vue 3 官方推荐 TypeScript |
Angular | ✅ 内置 TypeScript | Angular 默认使用 TypeScript |
Node.js | ✅ 支持 | 使用 TypeScript 开发后端 API |
10.7) 为什么要学 TypeScript?
✅ 提高代码安全性:避免常见的 JavaScript 运行时错误
✅ 更好的代码提示:IDE(如 VSCode)可提供更智能的自动补全
✅ 适用于大型项目:减少维护成本,提高团队协作效率
✅ 主流框架支持:React、Vue、Angular、Node.js 都推荐 TypeScript
10.8) TypeScript 适合谁学习?
- ✅ JavaScript 开发者(想提升代码质量的人)
- ✅ 前端开发者(想写更安全、可维护的代码)
- ✅ 后端开发者(用 Node.js 搭建服务器的人)
- ✅ 全栈工程师(想用 TypeScript 统一前后端技术栈)
10.9) 总结
特点 | TypeScript(TS) |
---|---|
是什么? | JavaScript 的超集,增加了类型检查 |
核心优势 | 静态类型、代码更安全、可维护性更强 |
支持的框架 | React、Vue、Angular、Node.js |
适合人群 | JavaScript 开发者、前端工程师、全栈开发者 |
如何运行? | 需要先编译成 JavaScript |
🚀 TypeScript 让 JavaScript 更强大、更安全,推荐学习!
- javascript 条件分支语句:if,if else, else if, 条件运算符 ?
- JavaScript 比较运算符
- Hello, World! – Visual Studio Code下运行你的第一个javascript脚本
- 流行的 JavaScript 代码编辑器
- 玲珑企业主
- JavaScript 赋值运算符
- JavaScript 一元运算符
- Javascript 逗号运算符(Comma)
- JavaScript按位运算符
- javascript基本运算符 – 自增和自减运算符
- javascript 运算符优先级
- javascript 基本运算符 – 数学运算符
- javascript 类型转换(Type Conversions)
- 浏览器交互函数:alert、prompt、confirm
- JavaScript 数据类型
- JavaScript 保留字(Reserved Names)
- Javascript 变量和常量
- Javascript严格模式,“use strict”
- Javascript 代码结构
- Hello, World! – 你的第一个javascript脚本
- Javascript 开发者控制台(Developer Console)
- Javascript 代码编辑器
- JavaScript 作为计算机语言的特点
- Javascript 手册和规范
- JavaScript 之上的语言及常见的 JavaScript 转译语言
- JavaScript 有哪些独特之处?
- 浏览器内的 JavaScript 能做什么?不能做什么?
- javascript 到底是个啥?JavaScript 的应用领域
- 脚本语言的应用场景分析
- 什么是JavaScript 的生成器,yield 操作符, 如何在生成器中传递值?
- Ajax是什么?
- JavaScript 与 Java 的关系
- 什么是 JavaScript 语言?JavaScript 广泛的使用领域
- 什么是DOM?