我有一个被包含在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 );
然而请小心,要知道你想检查的是真实值(非假、null、未定义、""或0),还是针对null、未定义、false或它们的组合。
如果你只想看到这个数值有一个值,我放置在上面的代码应该可以做到。
作为建议,我发现这本书非常好:JavaScript - the Good Parts
typeof
是一个运算符,而不是函数。你不需要在操作数周围加括号。*[这是从我的答案迁移过来的,因为它不是一个答案;我相信当时我的声望不足以发表评论]* - Tim Down