【问题标题】:JavaScript: Check if variable exist without classic if()JavaScript:检查变量是否存在而没有经典 if()
【发布时间】:2013-07-31 06:03:11
【问题描述】:

我遇到了以下情况。

在我的脚本中,我已将所有发布到网页的字符串提取到这样的对象中。

var strings = {
    one: "One",
    two: "Two",
    three: "Three",
}

请不要问我为什么要这样做,这只是一个测试用例。

现在我想将这些字符串之一推送到警报()中。这看起来像这样:

alert(strings.one);

到目前为止一切顺利,但我想检查 strings 或 strings.one 是否存在以及何时不返回空字符串。

不使用经典的if(strings.one == undefined),有什么巧妙的方法来做到这一点?

编辑

我根据你的回答和cmets找到了解决办法。

alert((window.strings) ? strings.one || "nope" : "nope");

这可以捕获我想要预防的所有情况:

  1. 我忘了声明strings
  2. strings.one 不存在

我希望这适合“巧妙的方式”?!

【问题讨论】:

标签: javascript variables if-statement


【解决方案1】:

你可以使用||,如果它是真的则返回第一个操作数,否则返回第二个:

alert(strings.one || "");

这也将捕获其他虚假值,但这对您来说可能不是问题。

【讨论】:

  • 这样做有什么计算优势吗?
  • 我已经完成了,但我想我忘记了一些事情。我使用 Chrome 开发人员工具调试我的代码,当我将变量放入监视表达式时,它返回 。没错||在这种情况下对我没有帮助吗?!
【解决方案2】:

你可以使用三元运算符,如果你愿意,你可以这样做,如果 string.one 不存在,则为空字符串。

alert(string.one || '');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    相关资源
    最近更新 更多