Tranary表达式无法评估未定义的变量

时间:2017-05-20 02:15:35

标签: javascript

Chrome控制台会在调用b = a || 1时报告此情况。

b = a || 1
Uncaught ReferenceError: a is not defined
    at <anonymous>:1:5

当我预期b的值应为1时。

此外:

x.push(a?'a':1)
Uncaught ReferenceError: a is not defined
    at <anonymous>:1:8

当我预期1被推到阵列x时。

有人可以用一些语法糖解释如何忽略未定义的值吗? THX

1 个答案:

答案 0 :(得分:1)

变量a不存在。您需要先声明变量,然后才能在表达式中使用它。但是,您不需要为其分配任何内容,因为一旦声明,它将默认评估为undefined(因此在表达式中将是假的),我认为你期待的行为。

&#13;
&#13;
var a;
b = a || 1;
console.log('b is: ' + b);
&#13;
&#13;
&#13;