我已经阅读了与此类似的代码,但我显然忘记了语义:
let serve = target || "Hello World";
换句话说,如果目标是null
,则服务等于Hello World
。我的目标,因为目标为空,是让服务为Hello Word
...
如果我按照所述节点运行该功能,则打印出:
ReferenceError: target is not defined
答案 0 :(得分:3)
您需要先定义变量target
。以下是一些例子:
let target;
let serve = target || "Hello World";
console.log(serve); // prints "Hello World";
target = null;
serve = target || "Hello World";
console.log(serve); // still prints "Hello World";
target = "Cat";
serve = target || "Hello World";
console.log(serve); // prints "Cat"
答案 1 :(得分:2)
如果a || b
是假的,则使用b
将返回a
。来自You Don't Know JS: Types and Grammar - Chapter 4: Coercion的虚假值是:
undefined
null
false
+0
,-0
和NaN
""
如果您想在target
为null
时返回默认 ,请使用:
let serve = target === null ? "Hello World" : target;
答案 2 :(得分:2)
target
,在您的示例中不是null
。它不是任何东西:你根本没有声明它。
let target = null;
let serve = target || "Hello World";
console.log(serve);
可能你正在考虑这种模式:
var serve = serve || "Hello World";
console.log(serve);
其中:
var
确保serve
是声明的变量"Hello World"
分配给服务,以前的某些代码尚未为其指定真值。