gpt4 book ai didi

javascript - var foo = bar&& bar.getSomething(); 的用法在 JavaScript 中

转载 作者:行者123 更新时间:2023-11-28 04:12:38 24 4
gpt4 key购买 nike

我注意到在Javascript中,我偶尔会看到

var foo = bar && bar.getSomething()

我知道这可能类似于:

var foo;
if(bar !== undefined) {
foo = bar.getSomething();
}

但这仍然让我感到困惑。因为对我来说,它与二进制运算非常相似,例如:

0100 & 0101 == 0100;  //true

但是,另一方面,它又完全不同,因为例如,如果 bar 是一个对象,并且 bar.getSomething() 返回一个整数(在下面的示例中为 5),则代码最终为:

var foo = {baz : qux} && 5;

这对我来说显然毫无意义。

所以我的问题是,为什么在 Javascript 中,人们可以用这种方式编码?这是JS中二元运算的实现吗?这种编码实践的名称是什么?与传统方式相比,有什么性能优势吗?谢谢

最佳答案

我认为您对 & 运算符和 && 运算符感到困惑,& 运算符将返回按位 &,而 && 运算符在所有值均为 true 时返回最后一个操作数,或者在任何值均为 true 时返回第一个假值是假的

console.log(4 & 5);
console.log(4 && 5);
console.log(!!(4 && 5));
console.log(0 && 5);
console.log(5 && 0);
console.log(null && 5);
console.log(5 && null);

你可以使用!!运算符以确保它是 bool 值

关于javascript - var foo = bar&& bar.getSomething(); 的用法在 JavaScript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com