📅  最后修改于: 2023-12-03 14:48:43.980000             🧑  作者: Mango
在JavaScript中,||
和??
都是用来处理变量的默认值的运算符。
||
(或运算符): ||
用于获取第一个真值(即非false
、null
、undefined
、0
、NaN
、空字符串等)的操作数。它按照从左至右的顺序检查操作数,并返回第一个真值,如果没有真值,返回最后一个操作数。例如:const value = null || undefined || '' || NaN || 'default';
console.log(value); // 输出 'default'
||
运算符的一种常见用法是为变量赋予默认值:
const myVar = myVarToCheck || defaultValue;
如果myVarToCheck
的值为真(非假值),则myVar
将被赋予myVarToCheck
的值;否则,myVar
将被赋予defaultValue
的值。
??
(空值合并运算符):??
用于获取第一个定义的(非undefined
和null
)操作数。它与||
运算符有所不同,因为||
只检查真值,而??
只检查定义的值。例如:const value = null ?? undefined ?? '' ?? NaN ?? 'default';
console.log(value); // 输出 ''
与||
类似,??
运算符的常见用法是为变量提供默认值:
const myVar = myVarToCheck ?? defaultValue;
如果myVarToCheck
的值定义了(非undefined
和null
),则myVar
将被赋予myVarToCheck
的值;否则,myVar
将被赋予defaultValue
的值。
总结:
||
运算符返回第一个真值,可以用于获取默认值。??
运算符返回第一个定义的值,可以用于获取默认值。请注意,||
和??
运算符在以下情况下可能会产生不同的结果:
const value = 0 || 'default';
console.log(value); // 输出 'default'
const value2 = 0 ?? 'default';
console.log(value2); // 输出 0
在这个例子中,||
运算符将0
作为假值,因此返回了'default'
。而??
运算符将0
视为真正的值,因此返回了0
。
我希望这个简短的介绍能够帮助你理解||
和??
在JavaScript中的作用。