JavaScript 教程:从入门到实践
JavaScript 是一种轻量级的、解释型的编程语言,它是 Web 开发的三大基石之一(另外两个是 HTML 和 CSS),它能让你的网页“活”起来,实现复杂的交互功能,比如表单验证、动态内容更新、动画效果等。

本教程将分为以下几个部分:
- 第一部分:准备工作
- 第二部分:JavaScript 基础语法
- 第三部分:DOM 操作 - 让网页动起来
- 第四部分:进阶概念
- 第五部分:学习资源与下一步
第一部分:准备工作
在开始写代码之前,你需要一个环境来运行它。
开发工具
任何文本编辑器都可以编写 JavaScript 代码,但强烈推荐使用现代代码编辑器,它们提供语法高亮、自动补全等功能,能极大提升效率。
- Visual Studio Code (VS Code):目前最流行、功能强大的免费编辑器,强烈推荐。
- Sublime Text:轻量、快速、优雅。
- Atom:GitHub 出品的开源编辑器。
如何运行 JavaScript?
最简单、最直接的方式是使用浏览器的开发者工具。

- 打开开发者工具:在任意网页上,按
F12键或Ctrl+Shift+I(Windows) /Cmd+Opt+I(Mac)。 - 找到 Console (控制台):在开发者工具中,找到 "Console" 标签页。
- 开始编程:在 Console 中,你可以直接输入 JavaScript 代码,然后按
Enter键,代码会立即执行并显示结果,这是学习和测试代码片段的最佳场所。
示例:
在 Console 中输入 alert("Hello, World!");,然后按回车,页面会弹出一个提示框。
第二部分:JavaScript 基础语法
这部分是编程的内功,掌握了它,你就能写出任何逻辑。
变量
变量是存储数据值的容器,JavaScript 有三种声明变量的方式:
let(推荐): 声明一个可以重新赋值的变量。const(推荐): 声明一个常量,其值不能被修改。var(旧式): 不推荐在新项目中使用,它存在一些作用域上的问题。
// 使用 let 声明变量 let myName = "张三"; myName = "李四"; // 可以重新赋值 console.log(myName); // 输出: 李四 // 使用 const 声明常量 const myAge = 25; // myAge = 26; // 这行代码会报错,因为常量不能修改 console.log(myAge); // 输出: 25
数据类型
JavaScript 中的值都有其特定的类型。

- 字符串: 文本,用单引号或双引号括起来。
let greeting = "你好,世界!";
- 数字: 整数或小数。
let price = 99.99; let quantity = 10;
- 布尔值: 只有两个值,
true(真) 或false(假)。let isStudent = true;
- 未定义: 变量已声明,但未赋值。
let score; // score 的值是 undefined
- 空: 表示“没有值”。
let result = null;
- 数组: 一个有序的值的集合。
let fruits = ["苹果", "香蕉", "橙子"];
- 对象: 一个由键值对组成的无序集合。
let person = { name: "王五", age: 30, city: "北京" };
运算符
- 算术运算符: , , , , (取余)
console.log(10 + 5); // 15 console.log(10 % 3); // 1 (10 除以 3 余 1)
- 赋值运算符: , , , , `/=
let x = 10; x += 5; // 等同于 x = x + 5; x 现在是 15
- 比较运算符: (值相等), (值和类型都相等), ,
>,<,>=,<=console.log(5 == "5"); // true (只比较值) console.log(5 === "5"); // false (值和类型都不同)
- 逻辑运算符:
&&(与), (或), (非)let hasTicket = true; let hasID = false; console.log(hasTicket && hasID); // false (必须都为真才为真) console.log(hasTicket || hasID); // true (有一个为真就为真) console.log(!hasTicket); // false (取反)
函数
函数是可以重复使用的代码块,它接收输入(参数),执行一些操作,然后返回一个输出(返回值)。
// 定义一个函数
function greet(name) {
return "你好, " + name + "!";
}
// 调用函数
let message = greet("小明");
console.log(message); // 输出: 你好, 小明!
条件语句
根据不同的条件执行不同的代码。
if...elselet age = 18; if (age >= 18) { console.log("你已经成年了。"); } else { console.log("你还未成年。"); }switchlet day = "Monday"; switch (day) { case "Monday": console.log("新的一周开始了。"); break; case "Friday": console.log("周末快到了!"); break; default: console.log("普通的一天。"); }
循环语句
重复执行一段代码。
for循环: 在知道循环次数时使用。for (let i = 0; i < 5; i++) { console.log("这是第 " + (i + 1) + " 次循环。"); }while循环: 在满足某个条件时持续循环。let count = 0; while (count < 5) { console.log("Count is: " + count); count++; }
第三部分:DOM 操作 - 让网页动起来
这是 JavaScript 最强大的应用领域,DOM (Document Object Model) 是将 HTML 文档表示为一个树形结构,JavaScript 可以通过操作这个树来改变网页的内容、结构和样式。
获取元素
你需要找到你想要操作的 HTML 元素。
<button id="myButton">点击我</button> <p class="my-paragraph">这是一段文字。</p>
// 通过 ID 获取
let button = document.getElementById("myButton");
// 通过 class 获取
let paragraphs = document.getElementsByClassName("my-paragraph");
// 通过标签名获取
let allButtons = document.getElementsByTagName("button");
// 更现代、更推荐的方法 (使用 CSS 选择器)
let button2 = document.querySelector("#myButton"); // 获取第一个匹配的元素
let allParagraphs = document.querySelectorAll(".my-paragraph"); // 获取所有匹配的元素
textContent: 修改元素的文本内容(不解析 HTML 标签)。innerHTML: 修改元素的 HTML 内容(可以解析 HTML 标签)。
let paragraph = document.querySelector(".my-paragraph");
paragraph.textContent = "新的文本内容。"; // 文本变成了 "新的文本内容。"
paragraph.innerHTML = "<strong>这是<strong>加粗</strong>的文本。</strong>"; // 文本会加粗
修改样式
直接修改元素的 style 属性。
let button = document.getElementById("myButton");
button.style.backgroundColor = "blue";
button.style.color = "white";
button.style.padding = "10px";
button.style.borderRadius = "5px";
事件监听
让元素对用户的操作(如点击、鼠标悬停)做出反应,最常见的是 click 事件。
let button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("按钮被点击了!");
});
综合示例:一个简单的计数器
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">JS 计数器</title>
</head>
<body>
<h1>计数器</h1>
<p>当前计数: <span id="count">0</span></p>
<button id="incrementBtn">+1</button>
<button id="resetBtn">重置</button>
<script>
// 1. 获取元素
let countSpan = document.getElementById("count");
let incrementBtn = document.getElementById("incrementBtn");
let resetBtn = document.getElementById("resetBtn");
let count = 0; // 2. 创建一个变量来存储计数
// 3. 为 +1 按钮添加点击事件
incrementBtn.addEventListener("click", function() {
count++; // 增加计数
countSpan.textContent = count; // 更新页面显示
});
// 4. 为重置按钮添加点击事件
resetBtn.addEventListener("click", function() {
count = 0; // 重置计数
countSpan.textContent = count; // 更新页面显示
});
</script>
</body>
</html>
第四部分:进阶概念
当你掌握了基础后,可以学习这些更强大的概念。
-
异步编程: JavaScript 是单线程的,但通过异步,它可以在等待某些操作(如网络请求)完成时,不阻塞主线程。
- 回调函数: 早期的异步处理方式,容易导致“回调地狱”。
- Promise: 更优雅地处理异步操作,代表一个异步操作的最终完成或失败。
- async/await: 基于 Promise 的语法糖,让异步代码看起来像同步代码一样,更易读易写。
-
模块化: 将代码拆分成独立的、可复用的模块,避免全局污染,提高代码的可维护性。
import/export(ES6 模块): 现代 JavaScript 的标准模块系统。
-
错误处理: 使用
try...catch语句来捕获和处理代码中可能出现的错误,防止程序崩溃。 -
API (应用程序编程接口): 学习如何使用 JavaScript 从服务器获取数据(通常是 JSON 格式),并动态地显示在网页上,这是构建现代 Web 应用的核心。
第五部分:学习资源与下一步
官方文档
- MDN Web Docs (Mozilla Developer Network): 最权威、最全面的 JavaScript 学习资料,几乎每个知识点都有详细的文档和示例。
交互式学习平台
- freeCodeCamp: 完全免费,提供大量交互式练习和项目,非常适合初学者。
- Codecademy: 互动式学习体验,部分课程免费。
- W3Schools: 提供简洁的教程和在线实例,适合快速查阅。
视频教程
- YouTube: 搜索 "JavaScript for beginners" 或 "JavaScript tutorial",有大量优秀的免费教程,Traversy Media, The Net Ninja 等频道。
实践项目
最好的学习方式就是动手实践! 尝试构建一些小项目:
- 待办事项列表
- 天气应用 (调用免费的天气 API)
- 简单的计算器
- 问答测验应用
- 个人作品集网站
下一步
当你掌握了基础 DOM 操作和异步编程后,就可以开始学习前端框架了,React, Vue, 或 Angular,它们能帮你更高效地构建复杂的、数据驱动的用户界面。
祝你学习愉快!JavaScript 是一门非常强大且有趣的语言,坚持下去,你一定能掌握它。
