我正在编辑某人的代码,但我不明白他们试图用这个语句做什么。这是函数的末尾。
return !(this.variable == "value")
他们正在返回true
或false
基于与比较结果相反的结果。
写起来可能会更清楚:
return this.variable != "value";
有时你会看到:
return !!(some.expression);
这会强制将表达式的结果“真实”转换为布尔值(true
或false
)。这 ”!!” 只是一对单独的逻辑补码(“非”)运算符。第一个(右侧)将表达式的结果转换为布尔值,但与“真实性”相反。第二个因此将其翻转回来。
它返回一个真或假......
感叹号是NOT...
所以 this.variable 不等于“值”。
this.variable == "value"
这将比较两个值并计算为布尔值(如果它们比较相等,则为真)。
!(this.variable == "value")
这否定了值(true <-> false)。
return !(this.variable == "value")
这将返回函数的值。
他们正在检查 this.variable 是否等于“值”(返回真或假),然后使用 ! (不)使值相反。
它达到了相同的结果
return (this.variable != "value")
您不妨将其更改为那个,因为它更清晰。