我有包含在 try/catch 块中的代码。我使用 typeof 来确定是否定义了变量:
if (typeof (var) == 'string') {
//the string is defined
}
但是,在 try/catch 块中使用它会跳转到 catch 部分,而不是做它应该做的事情(如果定义了字符串,则对它做一些事情)。
如何在不激活异常的情况下检查变量是否已定义?
我有包含在 try/catch 块中的代码。我使用 typeof 来确定是否定义了变量:
if (typeof (var) == 'string') {
//the string is defined
}
但是,在 try/catch 块中使用它会跳转到 catch 部分,而不是做它应该做的事情(如果定义了字符串,则对它做一些事情)。
如何在不激活异常的情况下检查变量是否已定义?
'var' 不是一个有效的变量名——它是一个关键字。
除此之外,你所拥有的应该是正确的。
我会使用没有'typeof'的直接比较:
var vvv= 2;
alert( vvv !== undefined );
但是要小心,要知道您是否要检查真实性(不是 false、null、undefined、"" 或 0)、null、undefined、false 或这些的组合。
如果您只是想查看该值是否有值,那么我上面放置的代码应该可以。
作为一个建议,我发现这本书很棒:JavaScript - The Good Parts