a = (a == val1) 的简写?空值:val1;

Shorhand for a = (a == val1) ? null : val1;

关于使表达式更短的任何想法:

a = (a == val1) ? null : val1;

这个表达式的逻辑(如果重要的话)实际上是:

如果单击但尚未展开,则使其展开(以及其他)。如果它已经展开并且只是单击,则将其关闭(然后设置为空)。 换句话说,拒绝设置 aval1 仅当它已经设置为 val1 并将其替换为 null(从打开更改为关闭)。

如果您不介意在 false 和 val1 之间切换,您可以 a = !a && val1

这是基于 && 运算符在 javascript 中的行为:如果第一个操作数为真 && 运算符分配第二个操作数,否则它 returns 第一个操作数.

请注意:这确实会使您的代码更难阅读。如果您希望这对其他开发人员有意义,您必须添加一条注释来解释这一行的作用。