惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
Forbes - Security
Forbes - Security
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
V
Visual Studio Blog
月光博客
月光博客
博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
博客园 - 司徒正美
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
U
Unit 42
P
Proofpoint News Feed
Scott Helme
Scott Helme
MyScale Blog
MyScale Blog
T
Tenable Blog
Hugging Face - Blog
Hugging Face - Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Latest news
Latest news
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
博客园 - 【当耐特】
B
Blog RSS Feed
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
C
Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security

博客园 - 小院里的霍大侠

从一键部署热门游戏幻兽帕鲁到探索未来个人元宇宙 教你用JavaScript实现调皮的字母 教你用JavaScript实现搜索展开 教你用JavaScript实现进度条 教你用JavaScript实现计数器 教你用JavaScript实现背景图像滑动 教你用JavaScript实现鼠标特效 教你用JavaScript获取大转盘 教你用Java实现动态调色板 教你用JavaScript实现表情评级 教你用JavaScript实现实时字符计数器 教你用CSS实现表单部件 Web入门:JavaScript文字动画 教你用JavaScript实现粘性导航 教你用JavaScript随机生成密码 教你用JavaScript完成轮播图 教你用Python制作BMI计算器 教你用JavaScript实现随机点名 三官庙巷-你记忆中的那条路?!
教你用JavaScript实现乘法游戏
小院里的霍大侠 · 2022-12-25 · via 博客园 - 小院里的霍大侠


案例介绍

欢迎来的我的小院,我是霍大侠,恭喜你今天又要进步一点点了!
我们来用JavaScript编程实战案例,做一个乘法积分游戏。乘法游戏主要通过用户输入的数值和程序计算的数值进行对比,正确积一分,错误扣一分。通过实战我们将学会JSON.parse方法、JSON.stringify方法、localStorage.setItem方法和localStorage.getItem方法。

案例演示

运行程序后用户根据题目在输入框内输入结果,点击提交后,系统判定,正确得分加一分,错误得分扣一分。

案例设计

JavaScript实战案例-乘法游戏
我们来看此案例的思维导图设计,包括需求描述,页面设计和技术架构。
其中架构设计包含了HTML,CSS,JavaScript 共三部分代码。

源码学习

进入核心代码学习,我们先来看HTML中的核心代码。

<form class="form" id="form">
  <h4 class="score" id="score">得分</h4>
  <h1 id="question">1x1=?</h1>
  <input type="text"
    class="input"
    id="input"
    placeholder="输入你的答案"
    autofocus
    autocomplete="off"/>
  <button type="submit" class="btn">提交</button>
</form>

然后我们来编写核心的JavaScript代码,通过math随机生成数字,自由组成题目。通过getElementById获得指定id的对象,使用innerText将题目、得分设置在页面上。当用户点击提交时,将用户提交的结果和程序计算的结果进行比较,两者一样得分+1,两者不同得分-1。

const num1=Math.ceil(Math.random()*10);
const num2=Math.ceil(Math.random()*10);
const questionEI=document.getElementById("question");
const inputEI=document.getElementById("input");
const formEI=document.getElementById("form");
const scoreEI=document.getElementById("score");
let score=JSON.parse(localStorage.getItem("score"));
  if(!score){
  score=0;
  }
  scoreEI.innerText=`得分:${score}`;
  questionEI.innerText=`${num1} X ${num2} = ?`;
  const correctAns=num1*num2;
  formEI.addEventListener("submit",()=>{
  const userAns=+inputEI.value;
  if(userAns===correctAns){
  score++;
  updateLocalStorage();
  }else{
  score--;
  updateLocalStorage();
  }
  });
  function updateLocalStorage() {
  localStorage.setItem("score",JSON.stringify(score));
  }

总结思考

学习点
1、JSON.parse:将数据转换为 JavaScript 对象。
2、JSON.stringify:将 JavaScript 对象转换为字符串。
3、localStorage.setItem:将value存储到key字段
4、localStorage.getItem:获取指定key本地存储的值

问答
1、localStorage.setItem将什么存储到key字段?
2、JSON.stringify是将对象转换为字符串吗?
3、JSON.parse:将数据转换为什么对象?

关注我,跟着我每天学习一点点,让你不再枯燥,不再孤单..

全网可搜:小院里的霍大侠, 免费获取简单易懂的实战编程案例。编程/就业/副业/创业/资源。
私微信:huodaxia_xfeater
二维码: http://www.yougexiaoyuan.com/images/weixin_huodaxia.jpg
公众号:有个小院(微信公众号:yougexiaoyuan)
github:yougexiaoyuan (视频源码免费获取)
(部分素材来源于互联网,如有保护请联系作者)