gpt4 book ai didi

Javascript 返回或赋值?

转载 作者:行者123 更新时间:2023-11-30 17:19:34 27 4
gpt4 key购买 nike

我正在使用 simple example在 D3 中,我一直对这个 return 语句感到困惑。

function nodeByName(name) {
return nodesByName[name] || (nodesByName[name] = {name: name});
}

我对在返回语句中使用|| 运算符有基本的了解,但如果我错了请指正。根据我收集到的信息,如果 nodesByNames[name] 未定义,则会创建一个名为 name 的新对象 nodesByName[name] .

我想表达的是,我不知道如何围绕返回一个赋值,比如 nodesByName[name]={name:name}

最佳答案

当您使用 || 运算符创建表达式(即 a || b)时,JavaScript 将返回第一个 操作数计算结果为真值,例如 1true 或任何对象,否则将返回最后一个值。 (所以 a || b || c 将返回 c 如果所有的值都是假的)。

在你的例子中,你有这个:

nodesByName[name] || (nodesByName[name] = {name: name})

Javascript 将从计算左侧 nodesByName[name] 开始。如果这个值是真实的,它将被返回。如果不是,(并且 undefined 不是),右侧将被评估并返回。右侧是一个赋值,在将其赋值给 nodesByName[name] 后,它将返回一个对象 {name: name}

拥有这段代码的原因是为 nodesByName[name] 赋值(如果它还没有值的话)。

关于Javascript 返回或赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25389774/

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