📅  最后修改于: 2023-12-03 15:01:36.744000             🧑  作者: Mango
在JavaScript中,我们常常需要检查变量是否为null或undefined,以免在使用时发生错误。传统的方法是使用逻辑或“||”运算符来进行检查。例如:
let foo = null;
let bar = foo || 'default';
console.log(bar); // 输出 'default'
这个例子中,如果foo为null或undefined,则bar的值会被设置为'default'。但是,这个方法有一个缺点,就是如果foo的值为假值(如false、0、''或NaN),bar也会被设置为'default',这并不是我们想要的。
为了解决这个问题,JavaScript引入了空值合并运算符“??”,它也被称为nullish coalescing operator。这个运算符只在左侧的值为null或undefined时才会返回右侧的值。例如:
let foo = null;
let bar = foo ?? 'default';
console.log(bar); // 输出 'default'
这个例子中,由于foo的值为null,所以bar的值被设置为'default'。
在Python中也存在类似的语法。Python使用“or”运算符来进行空值合并,如果左侧的值为None,则返回右侧的值。例如:
foo = None
bar = foo or 'default'
print(bar) # 输出 'default'
这个例子中,由于foo的值为None,所以bar的值被设置为'default'。
总体来说,“??”在JavaScript里的作用和“or”在Python里的作用是类似的,用于检查null或None等空值情况,并返回默认值。
参考资料: