这个功能如何运作?

时间:2014-10-10 13:53:47

标签: javascript jquery

有人可以解释一下这个功能是如何工作的吗?我知道三元运算符,所以我理解这部分,他检查标志是否为true,如果不是,则使用2.值。但我不明白为什么flag首先是布尔值,以及为什么在调用true时它从false切换到animate(),反之亦然。 ..

flag = $texte.data('animToggle');
$texte.data('animToggle', !flag);
$texte.animate({
    'left': flag ? '-51%' : '0'
})

1 个答案:

答案 0 :(得分:3)

JavaScript有truthy and falsy values。当评估为布尔值时,这些值等于truefalse。这意味着truefalse不是唯一可以表示真假数据的值。

例如,如果$texte.data('animToggle')等于0,那么它将是 falsy ,因为0 falsy 值。< / p>

示例1:1000

1000 truthy 值,因此会输出&#34; True&#34;:

var flag = 1000;
console.log(flag ? "True" : "False");

> "True"

示例2:""

""(空字符串)是 falsy 值,因此输出&#34; False&#34;:

var flag = "";
console.log(flag ? "True" : "False");

> "False"

! (Logical NOT) operator将值转换为布尔值,否定$texte.data('animToggle', !flag);animToggle的{​​{1}}数据属性设置为与之前相反的值。

$texte