在 JavaScript 中编写三元运算符的另一种方法

Another Way to Write Ternary Operator in JavaScript

这是逻辑运算吗:

const user = users && users[0] || null;

同这个条件/三元运算:

const user = users ? users[0] : null;

?假设 users 是一个数组。

不,它们不一样。如果 users[0] 为假,则第一个代码中的 || null 将被选中:

const users = [0];
const user1 = users && users[0] || null;
const user2 = users ? users[0] : null;

console.log(user1, user2);

条件运算符可能是更好的选择。但是,更好的是,在现代 JavaScript 中,您可以改用可选链接,这更加简洁:

let users;

const user = users?.[0];
console.log(user);

(不过,请注意,如果嵌套的 属性 不存在,它会给你 undefined,而不是 null

单独使用 users 并不是进行测试的好方法。有些语言喜欢 Go 只允许对布尔值进行测试。为此,最好是 如果可能的话,测试一个布尔值。类似于:

const user = users.length > 0 ? users[0] : null;