相关疑难解决方法(0)

如何在JavaScript中检查未定义的变量

我想检查变量是否已定义.例如,以下引发了未定义的错误

alert( x );
Run Code Online (Sandbox Code Playgroud)

我怎么能抓到这个错误?

javascript variables undefined

879
推荐指数
8
解决办法
107万
查看次数

JavaScript:undefined!== undefined?

注意:根据ECMAScript5.1,第15.1.1.3节,window.undefined是只读的.

  • 现代浏览器正确实现此功能 例如:Safari 5.1,Firefox 7,Chrome 20等.
  • 未定义仍然可以改变:Chrome 14,...

当我最近将Facebook ConnectTersus集成时,我最初收到错误消息,Invalid Enumeration ValueHandler already exists在尝试调用Facebook API函数时.

事实证明,问题的原因是

object.x === undefined
Run Code Online (Sandbox Code Playgroud)

当'object'中没有属性'x'时返回false.

我通过在两个Facebook函数中用常规相等替换严格相等来解决这个问题:

FB.Sys.isUndefined = function(o) { return o == undefined;};
FB.Sys.containsKey = function(d, key) { return d[key] != undefined;};
Run Code Online (Sandbox Code Playgroud)

这使得事情对我有用,但似乎暗示了Facebook的JavaScript代码和我自己的代码之间的某种冲突.

什么可能导致这个?

提示:这是有据可查的undefined == null同时undefined !== null.这不是问题.问题是我们如何得到undefined !== undefined.

javascript

65
推荐指数
5
解决办法
11万
查看次数

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

我有一个 Tampermonkey 脚本,可以向基于浏览器的游戏添加一些信息。我使用一段简单的代码根据玩家的区域设置向数字添加千位分隔符:

function nThousand(x) {
    return x.toLocaleString();
}
Run Code Online (Sandbox Code Playgroud)

这个函数在很多代码中都会用到,例如:

$("#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>" …
Run Code Online (Sandbox Code Playgroud)

javascript tampermonkey

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

javascript ×3

tampermonkey ×1

undefined ×1

variables ×1