前端修炼篇③:JavaScript入门 - 让网页“动”起来
掌握网页交互逻辑,实现动态功能效果⚡
学习目标
- ✅ 理解JavaScript在网页中的作用
- ✅ 掌握JavaScript基础语法和数据类型
- ✅ 学会DOM操作和事件处理
- ✅ 能够实现简单的交互功能
📖📖 教程概览
JavaScript是网页的"肌肉和神经",负责处理用户交互和动态效果。本教程将带你从零开始学习JavaScript,让网页真正活起来。
💻💻 第一步:JavaScript基础入门
1.1 什么是JavaScript?
JavaScript是一种轻量级的解释型编程语言,主要用于网页交互、动画效果和数据交互。
1.2 JavaScript的引入方式
// 1. 内部脚本
<script>
console.log('Hello JavaScript!');
</script>
// 2. 外部脚本(推荐)
<script src="script.js"></script>
// 3. 行内脚本(不推荐)
<button onclick="alert('点击了按钮')">点击我</button>
1.3 基础语法
// 变量声明
let name = '张三';
const age = 25;
var score = 90; // 旧版方式,不推荐
// 输出信息
console.log('Hello World!');
alert('欢迎访问!');
document.write('页面内容');
🛠🛠 第二步:核心概念详解
2.1 数据类型
// 基本数据类型
let str = '字符串'; // 字符串
let num = 100; // 数字
let bool = true; // 布尔值
let undef; // undefined
let empty = null; // null
// 引用数据类型
let arr = [1, 2, 3]; // 数组
let obj = { // 对象
name: '李四',
age: 20
};
2.2 运算符和流程控制
// 算术运算符
let a = 10 + 5; // 加
let b = 10 - 5; // 减
let c = 10 * 5; // 乘
let d = 10 / 5; // 除
// 比较运算符
if (age >= 18) {
console.log('成年人');
} else {
console.log('未成年人');
}
// 循环语句
for (let i = 0; i < 5; i++) {
console.log('当前数字:' + i);
}
// 函数定义
function sayHello(name) {
return '你好,' + name;
}
🌟🌟 第三步:DOM操作实战
3.1 什么是DOM?
DOM(文档对象模型)是JavaScript操作HTML元素的接口。
3.2 获取DOM元素
// 通过ID获取
let title = document.getElementById('title');
// 通过类名获取
let items = document.getElementsByClassName('item');
// 通过标签名获取
let paragraphs = document.getElementsByTagName('p');
// 通过选择器获取(推荐)
let element = document.querySelector('.container');
let elements = document.querySelectorAll('.item');
3.3 操作DOM元素
// 修改内容
element.innerHTML = '新内容';
element.textContent = '纯文本内容';
// 修改样式
element.style.color = 'red';
element.style.fontSize = '20px';
element.classList.add('active'); // 添加类
element.classList.remove('old'); // 移除类
// 修改属性
element.setAttribute('src', 'new-image.jpg');
let value = element.getAttribute('data-id');
3.4 事件处理
// 添加点击事件
button.addEventListener('click', function() {
alert('按钮被点击了!');
});
// 常见事件类型
element.addEventListener('click', handleClick); // 点击
element.addEventListener('mouseover', handleHover); // 鼠标悬停
element.addEventListener('keyup', handleKeyPress); // 键盘输入
element.addEventListener('submit', handleSubmit); // 表单提交
🎮🎮 第四步:实战演练 - 为页面添加交互功能
任务要求:
为个人简介页面添加以下交互功能:
- 日夜模式切换
- 技能评分功能
- 实时时间显示
- 表单验证
完整JavaScript代码:
// script.js
// 1. 日夜模式切换
const themeToggle = document.getElementById('themeToggle');
const body = document.body;
themeToggle.addEventListener('click', function() {
body.classList.toggle('dark-mode');
if (body.classList.contains('dark-mode')) {
themeToggle.textContent = '切换到日间模式';
} else {
themeToggle.textContent = '切换到夜间模式';
}
});
// 2. 技能评分功能
const skills = document.querySelectorAll('.skill-item');
skills.forEach(skill => {
skill.addEventListener('click', function() {
const level = this.getAttribute('data-level');
alert(`我的${this.textContent}水平:${level}星`);
});
});
// 3. 实时时间显示
function updateTime() {
const now = new Date();
const timeString = now.toLocaleString('zh-CN');
document.getElementById('currentTime').textContent = timeString;
}
setInterval(updateTime, 1000);
updateTime(); // 立即执行一次
// 4. 表单验证
const contactForm = document.getElementById('contactForm');
contactForm.addEventListener('submit', function(event) {
event.preventDefault(); // 阻止表单默认提交
const name = document.getElementById('name').value;
const email = document.getElementById('email').value;
const message = document.getElementById('message').value;
if (name.length < 2) {
alert('请输入有效的姓名(至少2个字符)');
return;
}
if (!email.includes('@')) {
alert('请输入有效的邮箱地址');
return;
}
if (message.length < 10) {
alert('留言内容至少需要10个字符');
return;
}
alert('消息发送成功!');
contactForm.reset(); // 清空表单
});
对应的HTML结构:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>个人简介 - 交互版</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<header>
<h1>张三</h1>
<p>前端开发学习者 | 技术爱好者</p>
<button id="themeToggle" class="theme-btn">切换到夜间模式</button>
<div id="currentTime"></div>
</header>
<main>
<section>
<h2>我的技能</h2>
<ul class="skills">
<li class="skill-item" data-level="4">HTML5</li>
<li class="skill-item" data-level="3">CSS3</li>
<li class="skill-item" data-level="3">JavaScript</li>
<li class="skill-item" data-level="4">Git版本控制</li>
</ul>
</section>
<section>
<h2>联系我</h2>
<form id="contactForm">
<input type="text" id="name" placeholder="您的姓名" required>
<input type="email" id="email" placeholder="您的邮箱" required>
<textarea id="message" placeholder="留言内容" required></textarea>
<button type="submit">发送消息</button>
</form>
</section>
</main>
</div>
<script src="script.js"></script>
</body>
</html>
📚📚 小结与练习
本章重点回顾:
- JavaScript负责网页的交互逻辑
- DOM操作是JavaScript的核心功能
- 事件处理让网页能够响应用户操作
- 函数和条件语句是编程的基础
练习任务:
- 实现日夜模式切换功能
- 为技能列表添加点击评分效果
- 创建一个简单的计算器
- 实现图片轮播效果
💡💡 常见问题
Q:JavaScript代码不执行怎么办?
A:检查浏览器控制台报错、脚本路径是否正确、语法是否有错误
Q:如何调试JavaScript?
A:使用console.log()
输出调试信息,或使用浏览器开发者工具
Q:事件监听器不生效?
A:确保DOM元素已加载完成,或将脚本放在页面底部
👉👉 下一步预告
在下一篇中,我们将学习响应式开发,让网页完美适配手机、平板和电脑等各种设备!
版权申明
本文系作者 @sgyyds 原创发布在孙哥博客站点。未经许可,禁止转载。
暂无评论数据