使用||在javascript中执行null / undefined检查?

时间:2018-05-07 22:02:06

标签: javascript

我已经阅读了与此类似的代码,但我显然忘记了语义:

        let serve = target || "Hello World";

换句话说,如果目标是null,则服务等于Hello World。我的目标,因为目标为空,是让服务为Hello Word ...

如果我按照所述节点运行该功能,则打印出:

ReferenceError: target is not defined

3 个答案:

答案 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-0NaN
  • ""

如果您想在targetnull时返回默认 ,请使用:

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"分配给服务,以前的某些代码尚未为其指定真值。