有人可以解释一下这个功能是如何工作的吗?我知道三元运算符,所以我理解这部分,他检查标志是否为true
,如果不是,则使用2.值。但我不明白为什么flag
首先是布尔值,以及为什么在调用true
时它从false
切换到animate()
,反之亦然。 ..
flag = $texte.data('animToggle');
$texte.data('animToggle', !flag);
$texte.animate({
'left': flag ? '-51%' : '0'
})
答案 0 :(得分:3)
JavaScript有truthy and falsy values。当评估为布尔值时,这些值等于true
和false
。这意味着true
和false
不是唯一可以表示真假数据的值。
例如,如果$texte.data('animToggle')
等于0
,那么它将是 falsy ,因为0
是 falsy 值。< / p>
1000
1000
是 truthy 值,因此会输出&#34; True&#34;:
var flag = 1000;
console.log(flag ? "True" : "False");
> "True"
""
""
(空字符串)是 falsy 值,因此输出&#34; False&#34;:
var flag = "";
console.log(flag ? "True" : "False");
> "False"
!
(Logical NOT) operator将值转换为布尔值,否定。 $texte.data('animToggle', !flag);
将animToggle
的{{1}}数据属性设置为与之前相反的值。
$texte