Javascript JS速记返回第一个未定义的值

Javascript JS速记返回第一个未定义的值,javascript,Javascript,我想使用这个缩写,因为它检查并返回b,如果它的值是true。这很好,因为如果b是一个函数,我不需要调用它两次 const a = b || c 但是如果我想返回b,其中b=0或b=“” 所以我需要使用这个代码,但是我需要调用b两次 const a = (b != null) ? b : c 那么,有没有像第一个代码那样的速记,如果它是0或“?,那么它也会返回b,其中有一个空合并运算符。TypeScript已支持它:) 所以现在,如果您使用的是TypeScript编译器,那么您可以使用运算符。

我想使用这个缩写,因为它检查并返回
b
,如果它的值是
true
。这很好,因为如果b是一个函数,我不需要调用它两次

const a = b || c
但是如果我想返回b,其中
b=0
b=“”
所以我需要使用这个代码,但是我需要调用b两次

const a = (b != null) ? b : c
那么,有没有像第一个代码那样的速记,如果它是
0

,那么它也会返回b,其中有一个空合并运算符。TypeScript已支持它:)

所以现在,如果您使用的是TypeScript编译器,那么您可以使用运算符。然而,如果您只使用vanilla JS,那么您将需要手动实现空/未定义的检查,不幸的是,由于缺乏跨浏览器支持

在撰写本文时,仅此而已。您还可以参考关于如何使用它的说明

如果浏览器支持,您可以在此处进行测试:

const有效载荷={
傅:0,,
foz:1,
酒吧:'',
baz:‘Lorem ipsum’,
};
console.log(payload.foo??999);//0
控制台日志(payload.foz??999);//1.
console.log(payload.bar??“回退文本”);//
console.log(payload.baz??“回退文本”);//乱数假文
console.log(payload.x???‘噢,不!’);//哦,不!
console.log(payload.foo | | 999);//999
console.log(payload.foz | | | 999);//1.
console.log(payload.bar | |'回退文本');//回退文本
console.log(payload.baz | |'回退文本');//乱数假文

console.log(payload.x | | |'噢,不!');//哦,不
可以
b
有空字符串或零以外的值吗?请列出应返回
c
b
的所有值。
b
可以是任何字符串或数字
c
如果
b=undefined
b=null
const a = b ?? c;