2

我想检查我的 3 个变量是否已定义,但这不起作用:

If (typeof inputServer && inputUser && inputPassword !="undefined") {
        alert("it works!");
    }

我的调试器说“Uncaught SyntaxError: Unexpected token {”

请帮我 :)

问候汤姆

4

4 回答 4

4

JavaScript 是区分大小写的语言。if关键字以 small 开头i

此外,我建议您使用typeof inputServer !== "undefined"来检查变量是否已定义。

REF: 检测未定义的对象属性

于 2013-04-16T17:12:47.727 回答
3
if ((inputServer != undefined) && (inputUser != undefined) && (inputPassword != undefined)) {
        alert("it works!");
}
于 2013-04-16T17:13:29.970 回答
0

首先,if应该是小写。

然后,你可以这样做:

if (inputServer !== undefined && inputUser !== undefined && inputPassword !== undefined) {
    alert("it works!");
}

如果您想检查它们是否不是undefinedOR null,您可以这样做(这是使用双重相等有用的罕见情况之一):

if (inputServer != null && inputUser != null && inputPassword != null) {
    alert("it works!");
}

最后,如果您想检查它们是否不是任何虚假值(null, undefined, false, -0, +0, NaN, ''),您可以这样做:

if (inputServer && inputUser && inputPassword) {
    alert("it works!");
}

旁注:您不需要typeof在大多数正常情况下使用 - 除非undefined实际上是在程序中某处定义的变量...

幸运的是,在 ECMAScript 5.1 中,无法覆盖window.undefined http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.1.3

于 2013-04-16T17:36:45.247 回答
0

它是 if(all lower) 而不是 If - 如果没有定义 vars,它仍然会给你一个错误,因为你在问他们 - 你可以做的是(假设这个代码在我理解的全局范围内运行:

if(typeof(window.inputServer) != 'undefined' && typeof(window.inputUser) != 'undefined'){

}
于 2013-04-16T17:14:48.683 回答