Javascript空值合并运算符,双问号 或运算符 区别和用法

2023-01-13 340点热度 0人点赞 0条评论

如果想为一个变量赋默认值,通常的做法是使用逻辑或运算符 ||

然而,由于 || 是一个布尔逻辑运算符,左侧的操作数会被强制转换成布尔值用于求值。任何假值(0, '', NaN, null, undefined)都不会被返回。这导致如果你使用0''NaN作为有效值,就会出现不可预料的后果。

function showTemp(temp) {
  // 针对5种情况都是未采集 '' undefined 0 null NAN
  document.getElementById('temp').innerHTML = temp || '未采集';
}

上面的示例,我们需要展示某一天的采集温度,如果温度temperature 这个变量是null,那么显示『未采集』, 使用了||后,显然不正确,如果温度是0,也会变成『未采集』

正确的做法:采用空值合并运算符

空值合并运算符??)是一个逻辑运算符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。

function showTemp(temp) {
  // 针对左边表达式的值如果是null undefined 才会设置成右边的默认值
  // (null || undefined) ?? 'ok'
  document.getElementById('temp').innerHTML = temp ?? '未采集';
}

如上面的示例,就会正确的显示了。

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论