hand
_1_11_262
4
返回栏目
0k
2k
1k
2k
1k
1k
1k
2k
2k
2k
1k
2k
1k
2k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
2k
1k
1k
2k
2k
2k
3k
3k
2k
3k
2k
3k
3k
3k
1k
2k
3k
2k
2k
3k
3k
2k
2k
6k
3k
2k
2k
5k
3k
4k
3k
3k
2k
4k
3k
3k
2k
3k
3k
1k
4k
4k
4k
2k
5k
3k
2k
3k
4k
3k
3k
4k
2k
3k
3k
4k
2k
2k
3k
4k
3k
3k
2k
5k
2k
3k
3k
3k
3k
2k
3k
3k
3k
2k
2k
2k
2k
3k
2k
2k
2k
3k
2k
2k
2k
2k
2k
2k
0.1k
0.2k
3k
2k
3k
2k
0.1k
2k
2k
4k
2k
2k
1k
2k
2k
3k
3k
3k
3k
2k
2k
3k
3k
3k
4k
3k
3k
4k
3k
2k
2k
3k
3k
3k
3k
3k
3k
2k
3k
3k
4k
4k
3k
3k
2k
2k
3k
2k
2k
1k
2k
3k
1k
2k
2k
2k
2k
2k
2k
2k
2k
2k
4k
2k
3k
2k
1k
2k
2k
2k
2k
2k
3k
2k
3k
1k
2k
2k
2k
0k
2k
2k
2k
2k
2k
2k
2k
3k
2k
2k
1k
1k
3k
2k
3k
1k
2k
1k
2k
2k
2k
2k
3k
1k
3k
2k
2k
2k
2k
2k
2k
1k
2k
2k
4k
3k
3k
2k
2k
2k
2k
2k
2k
4k
3k
3k
3k
2k
2k
2k
2k
2k
2k
3k
4k
返回前端 - Javascript栏目
作者:
贺及楼
成为作者
更新日期:2025-02-21 21:10:02
在 JavaScript 中,逻辑或赋值是一种强大且实用的操作符,它为开发者提供了一种简洁的方式来处理变量赋值的逻辑。本文将详细介绍逻辑或赋值运算及其特点,并通过一些实用的例子来帮助大家更好地理解。
逻辑或赋值运算符(||=
)是 ES2021 引入的一个新的赋值运算符。它结合了逻辑或(||
)和赋值(=
)操作。其基本语法如下:
x ||= y;
这个表达式等价于:
x = x || y;
也就是说,如果 x
的值为假值(如 false
、0
、''
、null
、undefined
、NaN
),那么就将 y
的值赋给 x
;如果 x
的值为真值,则 x
的值保持不变。
逻辑或赋值最大的特点就是简洁。它减少了代码的冗余,让代码更加易读。例如,我们在初始化一个变量时,如果该变量已经有值则保持不变,如果没有值则赋予一个默认值。传统的写法可能是这样:
let username;
if (!username) {
username = 'Guest';
}
使用逻辑或赋值后,代码可以简化为:
let username;
username ||= 'Guest';
可以看到,逻辑或赋值让代码变得更加简洁明了。
逻辑或赋值同样具有逻辑或运算符的短路特性。当 x
为真值时,y
表达式不会被执行。这在一些复杂的表达式中非常有用,可以避免不必要的计算。例如:
let num = 5;
function getValue() {
console.log('Function executed');
return 10;
}
num ||= getValue();
console.log(num);
在这个例子中,由于 num
的值为 5
,是一个真值,所以 getValue()
函数不会被执行,num
的值仍然是 5
。
逻辑或赋值只能用于可赋值的目标,如变量、对象属性等。不能用于常量或函数调用的返回值等不可赋值的目标。例如:
const PI = 3.14;
// 下面这行代码会报错,因为 PI 是常量,不能被赋值
// PI ||= 3;
const obj = { a: null };
obj.a ||= 1;
console.log(obj.a);
在函数中,我们经常需要为参数设置默认值。使用逻辑或赋值可以很方便地实现这一点:
function greet(name) {
name ||= 'Stranger';
return `Hello, ${name}!`;
}
console.log(greet());
console.log(greet('Alice'));
当我们创建一个对象时,可能需要为某些属性设置默认值。逻辑或赋值可以帮助我们简化这个过程:
const settings = {
theme: null,
fontSize: 16
};
settings.theme ||= 'light';
settings.fontSize ||= 14;
console.log(settings);
特点 | 描述 |
---|---|
简洁性 | 减少代码冗余,使代码更易读 |
短路特性 | 当左操作数为真值时,右操作数表达式不会执行 |
可赋值目标 | 只能用于可赋值的目标,如变量、对象属性 |
逻辑或赋值运算符为 JavaScript 开发者提供了一种简洁、高效的方式来处理变量赋值逻辑。通过合理运用它的特点,我们可以编写出更加简洁、易读的代码。在实际开发中,不妨多尝试使用逻辑或赋值,让代码变得更加优雅。
前端 - Javascript
整章节共299节
快分享给你的小伙伴吧 ~