a = (a == val1) 的简写?空值:val1;
Shorhand for a = (a == val1) ? null : val1;
关于使表达式更短的任何想法:
a = (a == val1) ? null : val1;
这个表达式的逻辑(如果重要的话)实际上是:
如果单击但尚未展开,则使其展开(以及其他)。如果它已经展开并且只是单击,则将其关闭(然后设置为空)。
换句话说,拒绝设置 a
为 val1
仅当它已经设置为 val1
并将其替换为 null(从打开更改为关闭)。
如果您不介意在 false 和 val1 之间切换,您可以 a = !a && val1
。
这是基于 &&
运算符在 javascript 中的行为:如果第一个操作数为真 &&
运算符分配第二个操作数,否则它 returns 第一个操作数.
请注意:这确实会使您的代码更难阅读。如果您希望这对其他开发人员有意义,您必须添加一条注释来解释这一行的作用。
关于使表达式更短的任何想法:
a = (a == val1) ? null : val1;
这个表达式的逻辑(如果重要的话)实际上是:
如果单击但尚未展开,则使其展开(以及其他)。如果它已经展开并且只是单击,则将其关闭(然后设置为空)。
换句话说,拒绝设置 a
为 val1
仅当它已经设置为 val1
并将其替换为 null(从打开更改为关闭)。
如果您不介意在 false 和 val1 之间切换,您可以 a = !a && val1
。
这是基于 &&
运算符在 javascript 中的行为:如果第一个操作数为真 &&
运算符分配第二个操作数,否则它 returns 第一个操作数.
请注意:这确实会使您的代码更难阅读。如果您希望这对其他开发人员有意义,您必须添加一条注释来解释这一行的作用。