hand
_1_11_263
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:25
在 JavaScript 的世界里,逻辑或赋值运算符(||=
)是一个相对较新但功能强大的特性,它为开发者提供了一种简洁高效的方式来设置变量的默认值。本文将深入探讨逻辑或赋值运算符的基本概念、工作原理,以及如何在实际开发中利用它来设置变量的默认值。
逻辑或赋值运算符(||=
)是在 ES2021 中引入的复合赋值运算符之一。它的基本语法如下:
x ||= y;
这个表达式等价于:
x = x || y;
其工作原理是:如果 x
的值为 false
(即 x
是 false
、0
、''
、null
、undefined
或 NaN
),则将 y
的值赋给 x
;否则,x
的值保持不变。
为了更好地理解逻辑或赋值运算符的工作原理,我们来看几个简单的例子:
// 示例 1:x 为 false 值
let x = null;
let y = 'default value';
x ||= y;
console.log(x); // 输出: 'default value'
// 示例 2:x 为 true 值
let a = 'existing value';
let b = 'default value';
a ||= b;
console.log(a); // 输出: 'existing value'
在示例 1 中,x
的初始值为 null
,这是一个 false
值,因此 y
的值 'default value'
被赋给了 x
。在示例 2 中,a
的初始值为 'existing value'
,这是一个 true
值,所以 a
的值保持不变。
逻辑或赋值运算符在设置变量默认值方面非常实用,尤其是在处理函数参数、配置对象等场景时。
在 JavaScript 中,函数的参数可能会在调用时被省略。使用逻辑或赋值运算符,我们可以轻松地为这些参数设置默认值。
function greet(name) {
name ||= 'Guest';
console.log(`Hello, ${name}!`);
}
greet(); // 输出: 'Hello, Guest!'
greet('John'); // 输出: 'Hello, John!'
在这个例子中,如果调用 greet
函数时没有提供 name
参数,name
的值将是 undefined
,这是一个 false
值,因此 'Guest'
会被赋给 name
。如果提供了 name
参数,name
的值将保持不变。
在处理配置对象时,我们通常希望用户可以选择性地提供一些配置项,而对于未提供的配置项,使用默认值。逻辑或赋值运算符可以帮助我们实现这一点。
function initConfig(userConfig) {
const defaultConfig = {
apiKey: 'defaultApiKey',
timeout: 5000,
debug: false
};
userConfig.apiKey ||= defaultConfig.apiKey;
userConfig.timeout ||= defaultConfig.timeout;
userConfig.debug ||= defaultConfig.debug;
return userConfig;
}
const config = initConfig({ apiKey: 'customApiKey' });
console.log(config);
// 输出: { apiKey: 'customApiKey', timeout: 5000, debug: false }
在这个例子中,用户只提供了 apiKey
配置项,timeout
和 debug
配置项未提供,因此它们将使用默认值。
逻辑或赋值运算符(||=
)为 JavaScript 开发者提供了一种简洁、高效的方式来设置变量的默认值。通过使用这个运算符,我们可以避免编写冗长的条件语句,使代码更加简洁易读。下面是一个简单的表格总结:
表达式 | 等价表达式 | 作用 | ||||
---|---|---|---|---|---|---|
`x | = y` | `x = x | y` | 如果 x 为 false 值,则将 y 的值赋给 x ;否则,x 的值保持不变 |
在实际开发中,合理运用逻辑或赋值运算符可以提高代码的质量和开发效率。希望本文能帮助你更好地理解和使用逻辑或赋值运算符来设置变量的默认值。
前端 - Javascript
整章节共299节
快分享给你的小伙伴吧 ~