🤖 Assistant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 🚀 JavaScript 零基础全面指南
## 🌟 JavaScript 是什么? - **JS** 是一种运行在浏览器的脚本语言 - 为网页添加**交互行为**(点击效果、数据验证、动态内容) - **三要素分工**:HTML(结构)、CSS(样式)、JS(行为) - 文件扩展名 `.js`(如 `script.js`)
---
## 📦 引入方式
### 1. 内部脚本(直接写在HTML中) ```html <script> alert("Hello World!"); </script>
|
2. 外部脚本(推荐)
1
| <script src="script.js"></script>
|
3. 行内脚本(少用)
1
| <button onclick="alert('点击成功!')">按钮</button>
|
🔧 基础语法
1. 变量声明
1 2 3
| let age = 25; const PI = 3.14; var oldVar = "不推荐";
|
2. 数据类型
类型 |
示例 |
说明 |
String |
"Hello" , '你好' |
文本型数据 |
Number |
12 , 3.14 |
所有数字统一为Number |
Boolean |
true , false |
布尔值 |
Array |
[1, 2, 3] |
数组 |
Object |
{name: "小明"} |
对象 |
Undefined |
let a; |
未定义的变量 |
Null |
let b = null; |
空值 |
3. 运算符
1 2 3 4 5 6 7 8
| let sum = 10 + 5;
console.log(5 > 3);
isValid && showAlert();
|
🧩 流程控制
1. 条件判断
1 2 3 4 5 6 7 8 9 10 11
| if (score >= 90) { console.log("优秀"); } else if (score >= 60) { console.log("合格"); } else { console.log("不及格"); }
let result = (age >= 18) ? "成年" : "未成年";
|
2. 循环结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| for (let i = 0; i < 5; i++) { console.log(i); }
let count = 3; while (count > 0) { console.log(count--); }
let fruits = ["苹果", "香蕉"]; for (let fruit of fruits) { console.log(fruit); }
|
🛠 函数与作用域
1. 函数定义
1 2 3 4 5 6
| function greet(name) { return `你好,${name}!`; }
const add = (a, b) => a + b;
|
2. 作用域原理(快递柜比喻)
1 2 3 4 5 6 7 8
| let global = "全局快递柜";
function demo() { let local = "本地快递柜"; console.log(global); }
console.log(local);
|
🎯 DOM 操作(网页操控)
1. 获取元素
1 2 3 4
| document.getElementById("header"); document.querySelector(".btn"); document.querySelectorAll("p");
|
2. 修改内容
1 2 3 4
| let title = document.querySelector("#title"); title.textContent = "新标题"; title.style.color = "red"; title.classList.add("active");
|
3. 创建/删除元素
1 2 3 4 5 6 7 8
| let newDiv = document.createElement("div"); newDiv.textContent = "我是新增的"; document.body.appendChild(newDiv);
let oldDiv = document.querySelector("#old"); oldDiv.remove();
|
🎮 事件监听(交互核心)
1 2 3 4 5 6 7 8 9 10 11 12
| document.querySelector("#btn").addEventListener("click", function() { alert("按钮被点击了!"); });
document.querySelector("#form").addEventListener("submit", function(e) { e.preventDefault(); processFormData(); });
|
🔄 异步编程
1. 回调函数(Callback)
1 2 3
| setTimeout(() => { console.log("3秒后执行"); }, 3000);
|
2. Promise(承诺模式)
1 2 3 4 5 6 7 8 9 10 11 12 13
| let promise = new Promise((resolve, reject) => { if (success) { resolve("成功的数据"); } else { reject("失败原因"); } });
promise.then(data => { console.log(data); }).catch(err => { console.error(err); });
|
3. async/await(终极方案)
1 2 3 4 5 6 7 8 9
| async function fetchData() { try { let response = await fetch("api/data"); let data = await response.json(); console.log(data); } catch (error) { console.log("请求失败", error); } }
|
🌈 ES6+ 重要特性
1. 模板字符串
1 2
| let name = "小明"; console.log(`大家好,我是${name}`);
|
2. 解构赋值
1 2 3 4 5
| let [a, b] = [10, 20];
let {name, age} = {name: "小明", age: 20};
|
3. 模块化
1 2 3 4 5
| export const PI = 3.14;
import { PI } from './math.js';
|
📱 综合案例:TODO 清单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| const input = document.querySelector("#todo-input"); const addBtn = document.querySelector("#add-btn"); const list = document.querySelector("#todo-list");
addBtn.addEventListener("click", () => { if (input.value.trim() === "") return; const li = document.createElement("li"); li.textContent = input.value; li.addEventListener("click", () => { li.classList.toggle("completed"); }); const deleteBtn = document.createElement("button"); deleteBtn.textContent = "移除"; deleteBtn.addEventListener("click", () => li.remove()); li.appendChild(deleteBtn); list.appendChild(li); input.value = ""; });
|
🚀 学习建议
- 优先掌握基础语法(不要急于学框架)
- 多使用浏览器Console调试(F12直接写代码测试)
- 从简单交互开始实践(轮播图、表单验证等)
- 阅读优秀开源代码(GitHub找小型项目学习)
- 关注现代JS新特性(ES6+文档常备)
JavaScript的灵活性既是优点也是挑战,遇到报错时仔细阅读控制台信息,坚持积累项目经验是突破的关键!💪
```
附:学习路线推荐
基础语法 → DOM操作 → ES6特性 → AJAX/异步 → NodeJS基础 → Vue/React框架