JavaScript:检查变量是否存在,但没有经典的if()

JavaScript:检查变量是否存在,但没有经典的if(),javascript,variables,if-statement,Javascript,Variables,If Statement,我有以下情况 在我的脚本中,我将所有发布到网页的字符串提取到这样一个对象中 var strings = { one: "One", two: "Two", three: "Three", } 请不要问我为什么要这样做,这只是一个测试用例 例如,现在我想将这些字符串中的一个推送到alert()中。这看起来像这样: alert(strings.one); 到目前为止还不错,但我想检查strings或strings.one是否存在,以及它何时不返回空字符串 如果不使用经典的

我有以下情况

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

var strings = {
    one: "One",
    two: "Two",
    three: "Three",
}
请不要问我为什么要这样做,这只是一个测试用例

例如,现在我想将这些字符串中的一个推送到alert()中。这看起来像这样:

alert(strings.one);
到目前为止还不错,但我想检查strings或strings.one是否存在,以及它何时不返回空字符串

如果不使用经典的
if(strings.one==undefined)
,那么实现这一点的巧妙方法是什么

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

alert((window.strings) ? strings.one || "nope" : "nope");
这涵盖了我想要预防的所有情况:

  • 我忘了声明
    字符串
  • 字符串。一个
    不存在

  • 我希望这适合“圆滑的方式”

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

    alert(strings.one || "");
    

    这也将捕获其他错误值,但这可能不会成为您的问题。

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

    alert(strings.one || "");
    

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

    您可以使用三元运算符,或者如果需要,您可以这样做,如果string.one不存在,则可以使用空字符串

    alert(string.one || '');
    

    您可以使用三元运算符,如果需要,您也可以这样做;如果string.one不存在,则可以使用空字符串

    alert(string.one || '');
    

    你在找一份工作。同时检查你正在寻找一个新的。还有,检查一下这样做有没有计算上的优势?我已经做了,但我想我忘记了什么。我用Chrome开发者工具调试代码,当我把变量放入watch表达式时,它会返回。在这种情况下,| |对我没有帮助是对的?!这样做有什么计算优势吗?我已经做了,但我想我忘了什么。我用Chrome开发者工具调试代码,当我把变量放入watch表达式时,它会返回。在这种情况下,| |对我没有帮助是对的?!