尝试:
var xxx = (typeof my_var.property !== 'undefined') ? my_var.property : 'fu';
我明白了:
未捕获的异常:ReferenceError:未定义的变量:my_var
我知道它是未定义的,但为什么我会得到那个错误? xxx应该取fu值......
答案 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);
}