使用| |在javascript中执行空/未定义的检查?

使用| |在javascript中执行空/未定义的检查?,javascript,Javascript,我读过类似的代码片段,但我显然忘记了语义: let serve = target || "Hello World"; 换句话说,如果target为null,则服务端等于helloworld。我的目标,因为目标是空的,是让发球成为问候语 如果我按说明运行函数,节点将打印以下内容: ReferenceError: target is not defined 您需要首先定义变量目标。以下是一些例子: 让目标; 让服务=目标| |你好,世界; console.logserve;//

我读过类似的代码片段,但我显然忘记了语义:

        let serve = target || "Hello World";
换句话说,如果target为null,则服务端等于helloworld。我的目标,因为目标是空的,是让发球成为问候语

如果我按说明运行函数,节点将打印以下内容:

ReferenceError: target is not defined

您需要首先定义变量目标。以下是一些例子:

让目标; 让服务=目标| |你好,世界; console.logserve;//打印你好世界; target=null; 服务=目标| |你好,世界; console.logserve;//依然印着《你好世界》; 目标=猫; 服务=目标| |你好,世界; console.logserve;//使用a | | b打印Cat时,如果a是错误的,则返回b。来自的falsy值为:

未定义 无效的 错误的 +0,-0和NaN 如果希望仅在目标为null时返回默认值,请使用:

在您的示例中,target不为null。它什么都不是:您根本没有声明它

让target=null; 让服务=目标| |你好,世界;
console.logserve;我觉得不错。问题是什么?更新了问题。。。错误试图告诉您,您无法引用从未声明过的变量。如果目标不存在,请删除它:@Ole:如果您想确保不使用未声明的变量,我建议使用。您可以将其设置为显示未声明变量之类的错误。最好保持代码干净,避免不必要的检查:
let serve = target === null ? "Hello World" : target;