首页 > web前端 > js教程 > 正文

使用 JavaScript LocalStorage 实现计算器历史记录功能

碧海醫心
发布: 2025-07-13 17:26:14
原创
738人浏览过

使用 javascript localstorage 实现计算器历史记录功能

本文将介绍如何使用 JavaScript 的 LocalStorage 实现一个简单的计算器历史记录功能。通过将用户输入的数字存储在 LocalStorage 中,并使用数组的 unshift 和 pop 方法,我们可以轻松地维护一个固定长度的历史记录,并在每次计算后更新它。

利用 LocalStorage 存储计算器历史

在开发计算器应用时,记录用户的计算历史是一个常见的需求。JavaScript 的 localStorage 提供了一种在浏览器端存储数据的简单方式,可以用来实现这个功能。

基本思路

  1. 初始化: 页面加载时,从 localStorage 中读取历史记录,如果不存在则创建一个空数组。
  2. 存储新数字: 当用户输入新的数字时,将其添加到历史记录数组的开头。
  3. 维护长度: 为了保持历史记录的长度固定,当数组长度超过限制时,移除数组末尾的元素。
  4. 更新 LocalStorage: 将更新后的历史记录数组存回 localStorage。

代码实现

以下是一个示例代码,展示了如何实现这个功能:

window.addEventListener("DOMContentLoaded", () => {
  // 从 localStorage 加载历史记录,如果不存在则创建一个空数组
  const arr = JSON.parse(localStorage.getItem("arr") || '[]');

  // 保存数字的函数
  const saveNumber = num => {
    arr.unshift(num); // 将数字添加到数组开头
    if (arr.length === 6) arr.pop(); // 如果数组长度超过 6,移除末尾的元素
    localStorage.setItem("arr", JSON.stringify(arr)); // 将更新后的数组存回 localStorage
  };

  // 事件委托,监听计算器按钮点击事件
  document.getElementById("calculator").addEventListener("click", (e) => {
    const tgt = e.target.closest("button.num"); // 找到被点击的按钮
    if (!tgt) return; // 如果点击的不是数字按钮,则返回
    saveNumber(+tgt.textContent); // 将按钮上的数字保存到历史记录
  });
});
登录后复制

代码解释:

立即学习Java免费学习笔记(深入)”;

  • window.addEventListener("DOMContentLoaded", ...):确保在页面加载完成后执行代码。
  • JSON.parse(localStorage.getItem("arr") || '[]'):从 localStorage 中读取键为 "arr" 的数据,如果不存在,则使用空数组 [] 作为默认值。JSON.parse 用于将 JSON 字符串转换为 JavaScript 对象。
  • arr.unshift(num):将新的数字 num 添加到数组 arr 的开头。
  • arr.length === 6:检查数组长度是否达到最大值(这里是 6)。
  • arr.pop():如果数组长度超过最大值,则移除数组末尾的元素。
  • localStorage.setItem("arr", JSON.stringify(arr)):将更新后的数组 arr 转换为 JSON 字符串,并存储到 localStorage 中。JSON.stringify 用于将 JavaScript 对象转换为 JSON 字符串。
  • document.getElementById("calculator").addEventListener("click", ...):为 ID 为 "calculator" 的元素(这里是计算器容器)添加点击事件监听器。
  • e.target.closest("button.num"):查找最近的具有 "num" 类的按钮元素,即被点击的数字按钮。
  • +tgt.textContent:将按钮上的文本内容转换为数字。

HTML 代码示例:

<div id="calculator">
  <button class="num">1</button>
  <button class="num">2</button>
  <button class="num">3</button>
  <button class="num">4</button>
  <button class="num">5</button>
  <button class="num">6</button>
  <button class="num">7</button>
  <button class="num">8</button>
  <button class="num">9</button>
  <button class="num">0</button>
</div>
登录后复制

注意事项

  • 数据类型: localStorage 只能存储字符串类型的数据。因此,需要使用 JSON.stringify 将 JavaScript 对象转换为字符串,并使用 JSON.parse 将字符串转换回 JavaScript 对象。
  • 存储限制: localStorage 的存储容量有限,通常为 5MB 左右。如果需要存储大量数据,建议使用其他存储方案,例如 IndexedDB。
  • 安全性: 存储在 localStorage 中的数据可以被同一域名下的任何页面访问。因此,不建议存储敏感信息,例如密码。
  • 浏览器兼容性: localStorage 在所有主流浏览器中都得到支持。

总结

通过使用 JavaScript 的 localStorage 和数组操作,我们可以轻松地实现一个计算器历史记录功能。这种方法简单易用,适用于存储少量数据。在实际应用中,需要注意数据类型转换、存储限制和安全性问题。 通过上述方法,可以轻松地为你的计算器添加一个实用的历史记录功能。

以上就是使用 JavaScript LocalStorage 实现计算器历史记录功能的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号