📅  最后修改于: 2023-12-03 15:13:02.976000             🧑  作者: Mango
在JavaScript中,我们熟悉的&&操作符通常用于逻辑判断。但是在新版本的JavaScript中,&&操作符有了一些新的特性。
&&操作符表示逻辑与,当所有操作数都为true时,返回true;否则,返回false。在JavaScript中,&&操作符也被称为“短路逻辑与”,因为当有一个操作数为false时,就没有必要再进行后续操作,直接返回false。
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false
在新版本的JavaScript中,&&操作符有了一些新特性,可以方便我们的编码。
逻辑赋值运算符是&&操作符的一种扩展,可以将逻辑运算和赋值运算结合起来,方便我们进行变量赋值。逻辑赋值运算符的语法如下:
x &&= y
其中,x为要赋值的变量,y为要运算的值。
如果x的值为false,那么什么也不做,直接返回false;否则,执行逻辑与运算,并将结果赋值给x。例如:
let x = null;
let y = 123;
x &&= y;
console.log(x); // null
x = "abc";
x &&= y;
console.log(x); // 123
可选链式操作符也是&&操作符的一种扩展,可以方便我们进行属性访问。可选链式操作符的语法如下:
obj?.prop
其中,obj为要访问的对象,prop为要访问的属性。
如果obj存在,就返回obj.prop的值;否则,返回undefined。例如:
let obj = {
prop1: {
prop2: "hello"
}
};
console.log(obj.prop1.prop2); // "hello"
console.log(obj.prop1.prop3); // undefined
console.log(obj.prop1?.prop2); // "hello"
console.log(obj.prop1?.prop3); // undefined
obj = null;
console.log(obj?.prop1?.prop2); // undefined
console.log(obj?.prop1?.prop3); // undefined
在新版本的JavaScript中,&&操作符有了逻辑赋值运算符和可选链式操作符两种扩展,可以方便我们编写代码。我们可以根据实际情况选择使用哪种扩展功能,使得代码更加简洁明了。