1

我有以下情况。

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

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

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

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

alert(strings.one);

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

在不使用经典的情况下,有什么巧妙的方法可以做到这一点if(strings.one == undefined)

编辑

根据您的回答和评论,我找到了解决方案。

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

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

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

我希望这适合“光滑的方式”?!

4

2 回答 2

4

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

alert(strings.one || "");

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

于 2013-07-31T06:07:46.380 回答
0

您可以使用三元运算符,或者您可以根据需要执行此操作,如果 string.one 不存在则为空字符串。

alert(string.one || '');
于 2013-07-31T06:08:19.073 回答