学 JavaScript 总觉得语法枯燥,看了一堆教程却连个简单交互都做不出来?写代码时要么报错不断,要么运行没效果,越学越没信心?不少新手朋友跟我吐槽,不是不想学,是不知道怎么把语法用到实际场景里。其实啊,JS 学习最忌讳 “只看不动手”,今天兔子哥就带大家用两个实战案例入门 —— 表单验证和猜数字小游戏,边学边练,从敲代码到看效果,零基础也能轻松上手。之前有个学员跟着这两个案例练习,三周后居然能自己改代码加功能了,这或许暗示实战比纯学语法更有效,对吧?
一、先搞定表单验证:网页常用功能,学会就能用在项目里
不管做登录页还是注册页,表单验证都是必学技能 —— 检查用户输入是否符合要求,比如手机号格式对不对、密码够不够长。咱一步步来做个简单的注册表单验证。
1. 先搭 HTML 结构:给 JS “打基础”
首先得有个表单,包含用户名、手机号、密码输入框和提交按钮,代码长这样:
html
<form id="regForm"><input type="text" id="username" placeholder="请输入用户名"><br><input type="tel" id="phone" placeholder="请输入手机号"><br><input type="password" id="password" placeholder="请输入密码"><br><button type="button" onclick="checkForm()">提交button><p id="tips">p> form>简单吧?每个输入框给个 ID,方便 JS 找到它们;按钮加个点击事件,点击就触发验证函数。
2. 核心验证逻辑:用 JS “挑错”
验证函数
checkForm()是关键,要检查:用户名不为空、手机号是 11 位数字、密码长度不少于 6 位。代码这样写:javascript
function checkForm() {// 获取输入框的值let username = document.getElementById("username").value;let phone = document.getElementById("phone").value;let password = document.getElementById("password").value;let tips = document.getElementById("tips");// 验证用户名if (username === "") {tips.innerText = "用户名不能为空哦!";tips.style.color = "red";return; // 验证失败就停止执行}// 验证手机号(简单版:11位数字)if (phone.length !== 11 || isNaN(phone)) {tips.innerText = "手机号必须是11位数字!";tips.style.color = "red";return;}// 验证密码if (password.length < 6) {tips.innerText = "密码至少6位哦!";tips.style.color = "red";return;}// 全部通过tips.innerText = "注册成功!";tips.style.color = "green";}避坑点:
isNaN(phone)用来判断是否为数字,但注意输入框默认值是字符串,得先确认长度再判断是否为数字,不然用户输 “12345” 也会被当成无效。之前有学员把顺序搞反,结果验证总出错。3. 优化体验:实时验证更友好
点击提交才提示太慢?改成输入时实时验证,给输入框加
oninput事件:html
<input type="tel" id="phone" oninput="checkPhone()" placeholder="请输入手机号">再写个
checkPhone()函数,输入时就判断格式,用户体验瞬间变好。二、再来个猜数字小游戏:练逻辑思维,学 JS 更有趣
不过话说回来,光做表单可能有点枯燥,咱们再来个小游戏练练手 —— 猜数字:程序随机生成 1-100 的数字,用户输入猜测,提示 “太大” 或 “太小”,直到猜对。
1. 游戏规则和 HTML 结构
规则简单,界面也不用复杂,一个输入框、一个按钮、一个提示区:
html
<input type="number" id="guessNum" placeholder="猜1-100的数字"><br><button onclick="guess()">猜一猜button><p id="result">p>2. 核心逻辑:用 JS “藏数字” 和 “判对错”
首先得生成随机数,用
Math.random(),然后判断用户输入与随机数的大小:javascript
// 生成1-100的随机数(整数)let target = Math.floor(Math.random() * 100) + 1;function guess() {let userNum = parseInt(document.getElementById("guessNum").value);let result = document.getElementById("result");if (isNaN(userNum) || userNum < 1 || userNum > 100) {result.innerText = "请输入1-100的数字!";return;}if (userNum > target) {result.innerText = "太大啦,再小点儿!";} else if (userNum < target) {result.innerText = "太小啦,再大点儿!";} else {result.innerText = "恭喜猜对啦!就是" + target + "!";}}关键知识点:
Math.floor()用来取整数,parseInt()把输入的字符串转成数字。有个学员忘了转数字,结果输入 “50” 会被当成字符串,比较大小时总出错,这个坑得记牢。3. 扩展功能:加次数限制更有挑战性
想增加难度?记录猜测次数,超过 10 次就失败:
javascript
let count = 0; // 记录次数function guess() {count++;if (count > 10) {result.innerText = "超过10次啦,答案是" + target + "!";return;}// 其他判断逻辑...}改改代码就能加新功能,这就是实战的乐趣!
三、新手避坑指南:这 3 个错别再犯
1. 变量没定义就用:报错 “is not defined”
比如在猜数字游戏里,没定义
target就用,肯定报错。解决办法:先声明变量,再赋值使用,新手最好在代码开头列好要用的变量。2. 类型搞混:数字和字符串比较
输入框的值默认是字符串,比如输入 “50”,直接和数字 50 比较没问题,但用
> < 时最好转成数字,不然可能出怪事(比如字符串 “100” 比数字 “20” 小,因为按字符比较)。3. 事件绑定不对:点击没反应
按钮的
onclick拼错成onclik,或者函数名写错,都会导致点击没反应。这时候看控制台报错,一般会提示 “函数未定义”,仔细检查拼写就行。关于浏览器兼容性,比如某些老浏览器对
const let的支持不太好,具体机制待进一步研究,新手暂时用var也能跑,重点先把逻辑搞懂。四、边学边练的小技巧
- 抄代码再改代码:先抄案例代码,跑通后试着改参数,比如表单验证改密码长度为 8 位,游戏改随机数范围为 1-50,改完看效果,印象更深刻。
- 用在线编辑器:菜鸟教程网的在线编辑器不用装环境,写完直接运行,报错有提示,新手入门超方便。
- 加自己的功能:比如给游戏加 “重新开始” 按钮,给表单加 “清空” 功能,哪怕简单,也是进步。
兔子哥觉得,学 JS 最快的方法就是 “做中学”—— 表单验证练 DOM 操作和条件判断,小游戏练循环和逻辑思维,两个案例覆盖的知识点够新手入门了。很多人觉得难,是因为光看不动手,代码敲多了,自然就熟了嘛。
之前那个学员说,做完这两个案例后,突然就懂了 “变量怎么存数据、函数怎么用、事件怎么绑”,再看语法教程都觉得亲切多了。其实编程就是这样,实战出真知,别怕报错,每错一次就多懂一点。
现在就打开在线编辑器,先敲表单验证的代码,跑通后再做小游戏,跟着改改功能,你会发现 JS 没那么难,甚至还挺有趣的,动手试试吧!
标签: .getElementById 零基础
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~