您的位置:首页 > Web前端 > JavaScript

[JS]先定义(??)

2021-08-09 17:58 671 查看

先定义是一个二元操作符,只有在第一个操作对象为 null 或 undefined 时才会返回第二个操作对象。

let a = null
a ?? 10 // => 10

对于上面的例子,先定义又类似于三元操作符。

let a = null
a === null || a === undefined ? 10 : null // => 10

但是,对于下面的情况,先定义与逻辑或有着明显的区别。

let start = null
let o = {
title: '',
maxWidth: 120,
visited: false
}

let max = start ?? o.title ?? o.visited ?? o.maxWidth ?? 500 // => ''

start 为 null,先定义不会返回它。但是对于逻辑与,start 为 null 、title 为空字符串(或者为0),都将被是作为假值,不会返回它们,所以最终返回的是 120 。

let max = start || o.title || o.visited || o.maxWidth || 500 // => 120

先定义与逻辑与在不同的情况下进行选择。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: