检查javascript中是否存在变量并不起作用

时间:2011-11-22 14:24:19

标签: javascript variables

尝试:

var xxx = (typeof my_var.property !== 'undefined') ? my_var.property : 'fu';

我明白了:

未捕获的异常:ReferenceError:未定义的变量:my_var

我知道它是未定义的,但为什么我会得到那个错误? xxx应该取fu值......

5 个答案:

答案 0 :(得分:5)

您的代码会检查my_var.property的类型是否未定义。但无法进行检查,因为my_var 本身的类型尚未定义。

答案 1 :(得分:3)

首先尝试仅检查my_var,也可以检查undefined

var xxx = (typeof my_var !== 'undefined' && my_var.property !== 'undefined') ? my_var.property : 'fu';

答案 2 :(得分:2)

my_var.property的评估失败,因为my_var为null或未定义。像这样增强你的代码:

var xxx = (my_var && typeof my_var.property !== 'undefined') ? my_var.property : 'fu';

答案 3 :(得分:2)

my_var

添加另一项检查
var xxx =  (typeof my_var != 'undefined' && typeof my_var.property !== 'undefined')? my_var.property : 'fu';

答案 4 :(得分:1)

我认为你应该先检查my_var

if(!myvar) 
{
     var xxx = (typeof my_var.property !== 'undefined') ? my_var.property : 'fu';
     alert(xxx);
}