用localStorage实现贪吃蛇本地高分榜的核心是:游戏结束时仅当新分更高才存字符串格式分数,页面加载时读取并显示;支持按难度扩展键名,需处理null兜底、跨域隔离等细节。

用 localStorage 实现贪吃蛇的本地高分榜,核心就两点:游戏结束时存分数,页面加载时读分数并显示。它不联网、不依赖后端,适合单机小项目,但要注意数据类型和键名管理。
存高分:只保存比历史更高的分数
localStorage 只能存字符串,所以得把数字转成字符串;同时要避免每次刷新都覆盖,只在新分数更高时才更新:
function saveHighScore(score) {
const key = 'snake_high_score';
const oldScore = parseInt(localStorage.getItem(key)) || 0;
if (score > oldScore) {
localStorage.setItem(key, score.toString());
}
}
// 游戏结束调用
saveHighScore(currentScore);
读高分:页面初始化时加载并显示
建议在 <body> 加载完或游戏初始化阶段读取,再渲染到对应 DOM 元素(比如一个 <div id="high-score">):
function loadHighScore() {
const key = 'snake_high_score';
const score = parseInt(localStorage.getItem(key)) || 0;
document.getElementById('high-score').textContent = score;
}
// 页面加载后执行
window.addEventListener('DOMContentLoaded', loadHighScore);
扩展支持多难度/多模式高分(可选)
如果游戏有“简单”“困难”等模式,可以按模式区分存储键名,比如:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
立即学习“前端免费学习笔记(深入)”;
'snake_high_score_easy''snake_high_score_hard'- 读取时根据当前模式动态拼接 key
这样不会互相覆盖,也方便后续加 UI 切换查看。
注意边界情况
-
首次访问无数据:
getItem返回null,用|| 0或?? 0安全兜底 -
手动清空:用户清除浏览器缓存或调用
localStorage.removeItem('snake_high_score')会丢失数据 -
跨域名隔离:
http://a.com和http://b.com的localStorage互不可见
不复杂但容易忽略细节,把存、读、防覆盖、类型转换这四步理清楚,就能稳稳跑起本地高分榜。


















