所以我使用了一个在线JavaScript优化器,它对我的IF语句做了一些奇怪的事情,这对我来说是新的。
{1===a?window.addEventListener("scroll",turnOff):0===a&&window.removeEventListener("scroll",turnoff)}
这到底是什么?请帮我理解它的各个部分。
三个等号表示严格的比较运算符。与通常的双等号不同,使用===
可以比较type
和被比较表达式的值。类型和值必须相等,语句才能计算为true。
?
和:
是if
语句的简写版本。当1===a
为true时,将评估问号后的语句。否则,将计算冒号后面的语句。if
语句的这个简写版本被称为条件(或三元)运算符。
它是一个条件(三元)运算符。
您可以在开发者Mozilla文档中阅读更多关于三元运算符的信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
它的结构是这样的:
condition ? code if true : code if false
?操作员被用作if.
if(a){
b;
} else {
c;
}
等于
a ? b : c;
它被称为三元运算符。它比较条件
if a === 1
如果条件为真,则返回第一个结果:
window.addEventListener("scroll",turnOff)
第二个如果为假:
0===a&&window.removeEventListener("scroll",turnoff)
这行代码做了两件事,将a设置为0,并删除一个事件侦听器。
请参阅本教程