x=false AND x=!x TO x=false AND x=true 之间有什么区别?
What's the difference between x=false AND x=!x TO x=false AND x=true?
此问题是 的后续问题。
有什么区别:
let isMenuVisible = false;
burger.addEventListener('click', ()=>{
isMenuVisible = !isMenuVisible;
menu.style.display = isMenuVisible ? 'block' : 'none';
});
到
let isMenuVisible = false;
burger.addEventListener('click', ()=>{
isMenuVisible = true;
menu.style.display = isMenuVisible ? 'block' : 'none';
});
我无法理解为什么后面的代码失败了;在我看来它们是等价的(因为 false
的否定是 true
,不是吗?)。
。在第一种情况下 isMenuVisible
为假,因此 !isMenuVisible
为真;
isMenuVisible =!isMenuVisible
将设置 isMenuVisible
的值将在每个 click
事件上更改
在第二种情况下,不是通过变量分配值 true
而是直接分配给 isMenuVisible
并且该值永远不会 toggle
首先在你的burger.addEventListener里面isMenuVisible = !isMenuVisible;
和isMenuVisible = true
不是一回事。
isMenuVisible = !isMenuVisible;
表示 isMenuVisible
的值现在是什么,如果它是 true
则将其设为 false
,如果它是 [=15] =] 然后让它成为 true
和
isMenuVisible=true
表示设置为true
isMenuVisible=false
表示设置为false
isMenuVisible = !isMenuVisible:
这就像翻牌。如果我们一开始就设置 isMenuVisible = false
。上面这行执行一次后,isMenuVisible
就会变成 !isMenuVisible/true
。再次执行后,isMenuVisible
将变为 !isMenuVisible/false
。
isMenuVisible
在每次执行中都会发生变化。
isMenuVisible = true:
这只是一直将 true
分配给 isMenuVisible
。
此问题是
有什么区别:
let isMenuVisible = false;
burger.addEventListener('click', ()=>{
isMenuVisible = !isMenuVisible;
menu.style.display = isMenuVisible ? 'block' : 'none';
});
到
let isMenuVisible = false;
burger.addEventListener('click', ()=>{
isMenuVisible = true;
menu.style.display = isMenuVisible ? 'block' : 'none';
});
我无法理解为什么后面的代码失败了;在我看来它们是等价的(因为 false
的否定是 true
,不是吗?)。
。在第一种情况下 isMenuVisible
为假,因此 !isMenuVisible
为真;
isMenuVisible =!isMenuVisible
将设置 isMenuVisible
的值将在每个 click
事件上更改
在第二种情况下,不是通过变量分配值 true
而是直接分配给 isMenuVisible
并且该值永远不会 toggle
首先在你的burger.addEventListener里面isMenuVisible = !isMenuVisible;
和isMenuVisible = true
不是一回事。
isMenuVisible = !isMenuVisible;
表示 isMenuVisible
的值现在是什么,如果它是 true
则将其设为 false
,如果它是 [=15] =] 然后让它成为 true
和
isMenuVisible=true
表示设置为true
isMenuVisible=false
表示设置为false
isMenuVisible = !isMenuVisible:
这就像翻牌。如果我们一开始就设置 isMenuVisible = false
。上面这行执行一次后,isMenuVisible
就会变成 !isMenuVisible/true
。再次执行后,isMenuVisible
将变为 !isMenuVisible/false
。
isMenuVisible
在每次执行中都会发生变化。
isMenuVisible = true:
这只是一直将 true
分配给 isMenuVisible
。