gpt4 book ai didi

javascript - 这是哪种 Javascript 表示法/快捷方式?

转载 作者:行者123 更新时间:2023-12-04 02:29:05 25 4
gpt4 key购买 nike

在某人的网站上看到以下内容,我很想了解此处应用的快捷方式。出于演示目的,我简化了变量。

 function(){
_imaboolean || ($element.removeClass("hidden").addClass("visible"), this.imaboolean = !0)
}

同样的事情

this._imaboolean && ($element.removeClass("visible").addClass("hidden"), this._imaboolean = !1)

最佳答案

这是一些糟糕“聪明”的代码,但是,让我们分解一下吧!

_imaboolean || ($element.removeClass("hidden").addClass("visible"), this.imaboolean = !0)

首先,让我们用占位符替换所有表达式(注意这些表达式不是纯粹的并且有副作用):

a || (b, c)

请注意,|| 是短路的,因此正确的表达式 - (b, c) - 只有在 a 时才会被计算计算结果为 false-y 值。

所以,让我们假设 a 评估为 false-y 值,然后评估 (b, c)。在这种情况下,, 运算符分隔子表达式;所有子表达式都按顺序计算。表达式的结果是最后一个子表达式的结果。

这意味着它大致相当于(尽管没有函数或绑定(bind)上下文并且结果无论如何都会被抛出):

(function () { b; return c })()

这有意义吗?不,当然不是!

按你的意思写:

if (!_imaboolean) {
$element.removeClass("hidden").addClass("visible");
this.imaboolean = true; // get rid of !0 too
}

关于javascript - 这是哪种 Javascript 表示法/快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427022/

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