当前位置: 首页 > Web前端 > HTML

浅谈JavaScript中的Nullish合并运算符Nullish合并运算符

时间:2023-04-02 14:00:39 HTML

空合并运算符(??)是一个逻辑运算符,只有当左侧(第一个参数)为空或未定义字符(第二个参数)时才返回一个操作。在所有其他情况下,它返回第一个参数。下面两行测试代码分别输出Hello和132。因此,正如您在上面的示例中看到的,返回Hello是因为undefined位于运算符的左侧。如果使用null而不是undefined,结果将是相同的。在第二个示例中,如果第一个参数中存在null或undefined以外的任何内容,则运算符不会检查第二个参数,而是立即打印第一个值。在将空合并运算符添加到ECMAScript2020之前,每当我们想为变量分配默认值时,我们都会使用OR(||)逻辑运算符。但是使用OR运算符有一些潜在的问题:||运算符不区分false、0、""和null/undefined。所有这些都被OR运算符判断为返回false,因此如果它遇到其中任何一个作为第一个参数,那么我们将得到第二个参数作为结果,从而使OR运算符的可信度降低。下图显示了两个运算符之间的区别??和||:遇到0时,||返回正确的操作数100,因为0既不是未定义也不是null,所以0??100返回0。大约????的优先级问题运算符仅比MDN文档中给出的优先级表中的OR运算符低一位。这意味着它将在=和三元运算符之前以及在+和*等运算符之后进行评估。为了提高代码的可读性,使用??时请加括号:??也有很多用法。在SAPSpartacus的实现中,如下图所示:更多Jerry原创文章在这里:《王子熙》: