我正在尝试使用以下语法:
someVar = otherVar || '';
// set someVar to otherVar, or '' if otherVar is false
当我将otherVar变成某个数组键时,
someVar = otherVar[1] || ''; // otherVar[1] is undefined.
我收到错误
无法读取未定义的属性“1”
这是有道理的,因为otherVar [1]未定义......但是 -
问题:在设置otherVar[1]
之前,唯一的方法是阻止这种情况,检查someVar
是否真实?或者我仍然可以使用这种简单的方法快速设置变量,就像if else?
我也试过
someVar = (!!otherVar[1]) ? otherVar[1] : ''; // didn't work either.
谢谢!
答案 0 :(得分:3)
您必须首先测试otherVar
是否存在,因此您无法使用该语法执行此操作,但您可以执行此操作:
someVar = otherVar && otherVar[1] ? otherVar[1] : '';
这是有效的,因为和语句在索引测试之前失败了。
答案 1 :(得分:1)
我假设您的情况是 变量<{1}}。你可以使用这个小技巧,神秘而又整洁:
undefined