第 3 篇:JavaScript 入门 —— 给网页装上 “灵魂”,从基础交互到 DOM 操作
前言
前两篇我们已经完成了网页的 “骨架搭建” 和 “装修美化”:
- HTML 负责结构,让网页有内容、有层级;
- CSS 负责样式,让网页好看、排版舒服。
但此时的网页,就像一本印刷好的杂志,只能看,不能和你互动。你点击按钮,它不会有反应;你输入内容,它不会处理;你滑动页面,它也不会有任何变化。
而 JavaScript(简称 JS),就是给网页装上 “灵魂” 的语言。它让网页从 “静态的展示” 变成 “动态的交互”,你可以用它实现点击切换、表单提交、数据计算、动画效果,甚至开发复杂的 Web 应用。
今天这篇文章,我们就从新手视角,一步步搞懂 JS 的核心基础,再亲手实现几个简单交互效果,彻底告别 “静态页面”。
一、JavaScript 到底是什么?先搞懂 3 个核心作用
很多新手刚接触 JS 时,会觉得它 “又多又难”,其实你只需要记住,它在网页里主要做 3 件事:
-
操作页面内容(DOM 操作) 修改 HTML 的内容、结构和样式。比如点击按钮后,修改一段文字的内容、更换一张图片、给元素添加 / 删除 CSS 类名。
-
响应用户操作(事件监听) 监听用户的行为,比如点击、输入、滑动、鼠标悬停,然后执行对应的代码。比如用户点击 “提交” 按钮时,获取表单内容并验证。
-
处理数据与逻辑 进行计算、判断、循环,比如计算器的加减乘除、判断用户输入的密码是否符合要求、遍历列表渲染内容。
简单说:HTML 是 “什么”,CSS 是 “长什么样”,JS 是 “能做什么”。
二、新手入门:JS 基础语法,只学最常用的
不用一开始就啃完所有语法,先掌握这几个高频核心,就能写出大部分基础交互了。
1. 变量:存储数据的 “盒子”
变量就是用来存数据的容器,比如用户名、年龄、状态。
javascript
运行
// 声明变量:let/const 变量名 = 值;
let username = "前端新手"; // 可以修改的变量,用let
const PI = 3.1415; // 不能修改的常量,用const(推荐优先用const)
// 修改变量
username = "新的用户名";
// PI = 3.14; // 报错!常量不能修改
✅ 新手避坑:
- 变量名不能以数字开头,不能有空格和特殊符号;
- 区分大小写,
userName和username是两个不同的变量; - 不要用中文命名变量,比如
let 年龄 = 18虽然不报错,但不规范。
2. 数据类型:JS 里常见的几种数据
你存的内容不同,数据类型也不同,常用的有这 4 种:
javascript
运行
// 字符串:文字内容,用单/双引号包裹
let name = "张三";
// 数字:数值,直接写
let age = 18;
// 布尔值:true/false(真/假)
let isStudent = true;
// 对象:键值对形式,存多个相关数据(比如用户信息)
let user = {
name: "张三",
age: 18,
isStudent: true
};
3. 条件判断:让代码 “有选择地执行”
根据不同的情况,执行不同的代码,最常用的是 if-else:
javascript
运行
let score = 85;
if (score >= 90) {
console.log("优秀!");
} else if (score >= 60) {
console.log("及格啦!");
} else {
console.log("不及格,加油!");
}
4. 循环:重复执行一段代码
比如遍历一个列表,给每个元素都执行相同的操作,最常用的是 for 循环:
javascript
运行
// 打印1到5
for (let i = 1; i <= 5; i++) {
console.log(i);
}
// 遍历数组
let fruits = ["苹果", "香蕉", "橙子"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
5. 函数:把重复的代码 “打包复用”
如果一段代码要写很多次,就把它封装成函数,需要的时候调用就行:
javascript
运行
// 定义函数
function sayHello(name) {
console.log("你好," + name + "!");
}
// 调用函数
sayHello("张三");
sayHello("李四");
三、核心重点:DOM 操作,让 JS 控制网页
DOM(文档对象模型)就是把 HTML 页面里的所有元素,变成 JS 可以操作的对象。简单说,就是让 JS“找到页面上的元素,然后修改它”。
1. 第一步:获取页面元素
要操作元素,首先得找到它,常用的 3 种获取方式:
html
预览
<!-- HTML部分 -->
<p id="demo" class="text">这是一段文字</p>
<button class="btn">点击我</button>
javascript
运行
// 1. 通过id获取(id是唯一的)
const demo = document.getElementById("demo");
// 2. 通过class获取(返回一个列表)
const btns = document.getElementsByClassName("btn");
// 3. 最常用:querySelector,和CSS选择器写法一样
const demo = document.querySelector("#demo"); // 选id为demo的元素
const btn = document.querySelector(".btn"); // 选class为btn的第一个元素
✅ 新手避坑:
- JS 代码要写在 HTML 元素的后面,或者用
DOMContentLoaded事件,不然会找不到元素!
javascript
运行
// 推荐写法:等页面加载完成后再执行JS
document.addEventListener("DOMContentLoaded", function() {
// 这里写获取元素和操作的代码
const demo = document.querySelector("#demo");
});
2. 第二步:修改元素内容与样式
获取到元素后,就可以修改它的内容和样式了:
javascript
运行
// 修改文本内容
demo.innerText = "我被JS修改了!";
// 修改HTML内容(可以包含标签)
demo.innerHTML = "<strong>加粗的文字</strong>";
// 修改CSS样式(驼峰命名,比如background-color改成backgroundColor)
demo.style.color = "red";
demo.style.fontSize = "20px";
demo.style.backgroundColor = "#f0f0f0";
3. 第三步:事件监听,让用户操作触发 JS
事件监听就是 “当用户做了某个动作,就执行一段代码”,最常用的是 addEventListener:
javascript
运行
// 给按钮添加点击事件
btn.addEventListener("click", function() {
// 点击后执行的代码
demo.innerText = "按钮被点击了!";
demo.style.color = "blue";
});
常见的事件还有:
click:点击input:输入框内容变化mouseover:鼠标悬停mouseout:鼠标离开scroll:页面滚动
四、实战 1:点击按钮切换文字(入门级交互)
我们来写一个完整的小案例,把上面的知识点串起来。
1. HTML 结构
html
预览
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>JS入门案例:点击切换文字</title>
<style>
.box {
width: 300px;
margin: 50px auto;
text-align: center;
}
#text {
font-size: 18px;
color: #333;
margin-bottom: 20px;
}
.btn {
padding: 8px 16px;
background: #409eff;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="box">
<p id="text">点击按钮,我会变哦~</p>
<button class="btn">点击切换</button>
</div>
<script>
// 等页面加载完成
document.addEventListener("DOMContentLoaded", function() {
// 1. 获取元素
const textEl = document.querySelector("#text");
const btnEl = document.querySelector(".btn");
// 2. 准备要切换的内容
const texts = ["点击按钮,我会变哦~", "我变啦!", "再点一下试试~", "又变了!"];
let index = 0; // 记录当前显示的文字索引
// 3. 给按钮添加点击事件
btnEl.addEventListener("click", function() {
// 索引+1,循环切换
index = (index + 1) % texts.length;
// 修改文字内容
textEl.innerText = texts[index];
// 同时修改文字颜色
const colors = ["#333", "#409eff", "#67c23a", "#e6a23c"];
textEl.style.color = colors[index];
});
});
</script>
</body>
</html>
2. 效果说明
打开这个页面,点击按钮,文字内容和颜色会循环切换,这就是一个最基础的 JS 交互效果。
五、实战 2:简单的输入框验证(表单交互)
再写一个稍微进阶的案例:用户输入内容,点击按钮后判断是否为空,并给出提示。
html
预览
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>JS入门案例:输入框验证</title>
<style>
.form-box {
width: 300px;
margin: 50px auto;
}
.input-item {
margin-bottom: 15px;
}
input {
width: 100%;
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
}
.btn {
width: 100%;
padding: 8px;
background: #409eff;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
}
.tip {
font-size: 12px;
margin-top: 5px;
}
.tip.error {
color: #f56c6c;
}
.tip.success {
color: #67c23a;
}
</style>
</head>
<body>
<div class="form-box">
<div class="input-item">
<input type="text" id="username" placeholder="请输入用户名">
<p class="tip" id="tip"></p>
</div>
<button class="btn" id="submitBtn">提交</button>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
// 获取元素
const usernameInput = document.querySelector("#username");
const tipEl = document.querySelector("#tip");
const submitBtn = document.querySelector("#submitBtn");
// 点击提交按钮
submitBtn.addEventListener("click", function() {
// 获取输入框的内容,trim()去掉首尾空格
const value = usernameInput.value.trim();
// 条件判断
if (value === "") {
// 为空,显示错误提示
tipEl.innerText = "用户名不能为空!";
tipEl.className = "tip error";
} else if (value.length < 3) {
// 长度不足3位
tipEl.innerText = "用户名长度不能少于3位!";
tipEl.className = "tip error";
} else {
// 验证通过
tipEl.innerText = "用户名格式正确!";
tipEl.className = "tip success";
}
});
});
</script>
</body>
</html>
六、新手必踩的 3 个 JS 坑,提前避开!
-
找不到 DOM 元素 原因:JS 代码写在 HTML 元素前面,页面还没加载完,元素还没渲染出来,JS 就找不到它了。 解决:把
<script>标签写在</body>前面,或者用DOMContentLoaded事件包裹代码。 -
变量名写错,导致 “undefined” 比如定义了
let userName = "张三",后面写的时候写成了username,JS 会把它当成一个新的变量,值为undefined。 解决:写变量名时复制粘贴,或者用 VS Code 的自动补全,减少拼写错误。 -
事件绑定多次,导致代码重复执行 比如在循环里给按钮绑定事件,结果每个按钮都绑定了多次,点击一次执行多次代码。 解决:检查事件绑定的位置,避免重复绑定;或者在绑定前先移除旧的事件监听。
结语
到这里,你已经学会了 JS 的基础语法、DOM 操作和事件监听,并且实现了两个简单的交互效果。
现在你已经掌握了前端三剑客(HTML+CSS+JS)的核心基础,接下来我们就可以把这些知识点整合起来,写一个完整的实战项目了。
下一篇文章,我们就从零开始,搭建一个完整的个人静态博客页面,把学到的所有知识都用起来,敬请期待!
更多推荐
所有评论(0)