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
答案 0 :(得分:1)
变量a
不存在。您需要先声明变量,然后才能在表达式中使用它。但是,您不需要为其分配任何内容,因为一旦声明,它将默认评估为undefined
(因此在表达式中将是假的),我认为你期待的行为。
var a;
b = a || 1;
console.log('b is: ' + b);
&#13;