javascript - "options = options || {}"在 Javascript 中是什么意思?

标签 javascript syntax notation

<分区>

前几天我看到了一段代码,我很好奇,但我不太确定它到底做了什么;

options = options || {};

到目前为止我的想法;将变量 options 设置为值 options 如果存在,如果不存在,则设置为空对象。

是/否?

最佳答案

这对于为函数参数设置默认值很有用,例如:

function test (options) {
  options = options || {};
}

如果您不带参数调用testoptions 将使用一个空对象进行初始化。

逻辑或 || 运算符将返回它的第二个操作数,如果第一个操作数是falsy

Falsy 值为:0nullundefined、空字符串 ("")、NaN,当然还有 false

ES6 更新:现在,我们有真正的 default parameter values使用自 ES6 以来的语言。

function test (options = {}) {
  //...
}

如果您不带参数调用该函数,或者使用值 undefined 显式调用该函数,则 options 参数将采用默认值。与 || 运算符示例不同,其他虚假值不会导致使用默认值。

关于javascript - "options = options || {}"在 Javascript 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2851404/

相关文章:

javascript - 如何添加使用带有指定键的 Push() 而不是 Firebase 上的默认键

javascript - 将 div 添加到 javascript 代码

java - 为什么 Java 语言没有提供通过注解来声明给定 "field"的 getter 和 setter 的方法?

notation - MusicXML : Any example files, 中的中文 'jianpu' 表示法或表示工具?

python - pandas/json 中的点表示法

javascript - 从 Node.js 更新 MySQL - 如何判断零行是否受到影响?

javascript - 复杂的 JSON 结构与 JS

Python 2.7 给我莫名其妙的 "syntax errors"

c - C程序初始化中反斜杠有什么用?

xslt - 这个 xsl 符号是什么意思 <xsl :template match ="/|@*|node()">