Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取未定义的属性“ToLocalString”_Javascript_Tampermonkey - Fatal编程技术网

Javascript 无法读取未定义的属性“ToLocalString”

Javascript 无法读取未定义的属性“ToLocalString”,javascript,tampermonkey,Javascript,Tampermonkey,我有一个Tampermonkey脚本,可以为基于浏览器的游戏添加一些信息。我使用一段简单的代码,根据玩家所在的地区为数字添加了1000个分隔符: function nThousand(x) { return x.toLocaleString(); } 此函数在许多代码中使用,例如: $("#CustomStats" + stat).html( "<b>" + texts[lang].stat_points_need + ":</b> " + nThousand(

我有一个Tampermonkey脚本,可以为基于浏览器的游戏添加一些信息。我使用一段简单的代码,根据玩家所在的地区为数字添加了1000个分隔符:

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 />"
);
这已经完美地工作了很长时间,但由于某种原因,在游戏运行的某个特定平台上,脚本现在拒绝加载,并给出以下错误消息:

无法读取未定义的属性“ToLocalString”

我已经回顾了几十个版本,以确保它不是我最近添加或更改的东西,老实说,我甚至不知道从哪里开始解决这个问题。该函数仅在存在要本地化的值时运行,并且仅在游戏运行的特定平台上运行


我的问题:是什么导致了这个问题?我该如何解决这个问题?

问题不在于toLocaleString,问题在于您正在向函数传递未定义的消息。您需要通过调试来找出发生这种情况的原因。如果函数传递了非字符串值,那么在函数中添加一个返回空字符串的保护也是一个好主意。

问题出在什么平台上?其他哪些平台可以工作?您能准确地识别哪个调用的值为null吗?您可以使用调试器来执行此操作,也可以只在函数和console中添加一个null参数检查。跟踪有问题的代码。使用console.trace可以帮助我找出作恶者!事实证明,这与平台无关,而是在游戏中某些物品丢失的情况下,它试图提取不存在的数字。它发生在同一个平台上是一个巧合,而且事实上它以前从未发生过。在普特的评论的帮助下,我发现它确实是在试图提取不存在的数字,从而使脚本崩溃。事实上,这种情况以前从未发生过,现在也发生在类似的情况下,这是一个巨大的巧合。我已经设法修复了它,使它确实,所以,如果它试图本地化的不是一个数字,它只是把它变成0。非常感谢。