10

我有包含在 try/catch 块中的代码。我使用 typeof 来确定是否定义了变量:

if (typeof (var) == 'string') { 
    //the string is defined
}

但是,在 try/catch 块中使用它会跳转到 catch 部分,而不是做它应该做的事情(如果定义了字符串,则对它做一些事情)。

如何在不激活异常的情况下检查变量是否已定义?

4

2 回答 2

14

'var' 不是一个有效的变量名——它是一个关键字。

除此之外,你所拥有的应该是正确的。

于 2009-06-30T11:15:19.403 回答
0

我会使用没有'typeof'的直接比较:

var vvv= 2;
alert( vvv !== undefined );

但是要小心,要知道您是否要检查真实性(不是 false、null、undefined、"" 或 0)、null、undefined、false 或这些的组合。

如果您只是想查看该值是否有值,那么我上面放置的代码应该可以。

作为一个建议,我发现这本书很棒JavaScript - The Good Parts

于 2009-06-30T11:23:44.627 回答