对此行为感到困惑。我想做了类似的事情:
if (variable name)
{
... do this...
}
应该有效。但是,如果未定义变量,我只会得到'ReferenceError:找不到变量:'变量名,并且甚至不会执行else块。例如,我从另一个StackOverflow问题中得到的以下片段没有我测试时工作。有什么建议吗?
if(persons_name)
{
var name = persons_name;
}
else
{
var name = "John Doe";
}
答案 0 :(得分:3)
if (typeof persons_name !== 'undefined') {
...
} else {
...
}
请注意,您不需要使用typeof
的大括号。
答案 1 :(得分:2)
与属性不同,必须先定义非限定名称才能使用它。所以,如果你正在寻找一个全局变量persons_name,你可以写
if (window.persons_name)
如果persons_name不存在,它将评估为undefined。或者,您可以简单地声明persons_name,如果您希望它存在。
var persons_name;
如果已存在,则不会更改persons_name的值。
答案 2 :(得分:0)
通过说var name;
来定义变量;并通过说var name = "john doe";
为其指定一个值。
答案 3 :(得分:0)
var name = (typeof persons_name !== 'undefined' || !(!!persons_name)) ?
persons_name :
'John Doe';