javascript - 无法读取未定义的属性“toLocaleString”
问题描述
我有一个 Tampermonkey 脚本,可以将一些信息添加到基于浏览器的游戏中。我使用一段简单的代码根据玩家的语言环境为数字添加千位分隔符:
function nThousand(x) {
return x.toLocaleString();
}
很多代码中都用到了这个函数,例如:
$("#CustomStats" + stat).html(
"<b>" + texts[lang].stat_points_need + ":</b> " + nThousand(remainingPoints) + "<br />" +
"<b>" + texts[lang].money_need + ": </b>" + nThousand(remainingMoney) + "<br />" +
"<b>" + texts[lang].money_spent + ": </b>" + nThousand(currentMoney) + "<br /><br />" +
"<b>" + texts[lang].bought_points + ": </b>" + nThousand(boughtPoints) + "<br />" +
"<b>" + texts[lang].equipment_points + ": </b>" + nThousand(itemPoints) + "<br />" +
"<b>" + texts[lang].points_from_level + ": </b>" + nThousand(skillPoints) + "<br />"
);
这已经完美运行了很长时间,但由于某种原因,在游戏运行的特定平台上,脚本现在拒绝加载并给出以下错误消息:
无法读取未定义的属性“toLocaleString”
我已经返回了几十个版本,以确保它不是我最近添加或更改的东西,老实说,我什至不知道从哪里开始解决这个问题。该函数仅在存在要本地化的值时运行,并且仅在游戏运行的一个特定平台上执行此操作。
我的问题:可能是什么原因造成的,我将如何解决这个问题?
解决方案
问题不toLocaleString
在于 ,问题在于您传递undefined
给函数的某个地方。您需要通过调试弄清楚为什么会发生这种情况。向函数添加一个守卫也可能是一个好主意,如果它传递了一个非字符串值,则返回一个空字符串。
推荐阅读
- php - SQLSTATE[HY000]:一般错误:1005 无法创建表 Laravel 8
- json - 错误:无效的 JSON RPC 响应:未定义
- python - 以指定间隔计算曲线下的部分面积
- c# - C# Windows 窗体 Web Api 身份验证
- python - 为什么熊猫会抛出“数据重叠”。当我使用 pd.update 时?
- python-3.x - 如何在 django 的数据库中连续保存倒计时天数?
- javascript - 将日期范围过滤器添加到数据表
- git - Intellij 不再显示“解决冲突”对话框?
- git - git push 不工作 - 说一切都是最新的,但显然不是
- node.js - mongodb / nodejs:findandmodify方法不起作用