布尔和条件语句如何在事件监听器中执行?

有人可以在代码中解释这里的逻辑。为什么如果变量“started”已经为 false 并且此事件的条件仅在 started 不是 false 时运行,为什么如果事件侦听器中的条件本身违背变量“started ”的值它会运行?


function nextSequence(){

 console.log("Hello World");

 }


var started = false;


$("body").on("keydown",function(){

   if(!started){

      nextSequence();

      started=true;

}

});


慕运维8079593
浏览 98回答 3
3回答

摇曳的蔷薇

在!布尔值之前反转布尔值。于是就true变成了false。并false成为true。console.log( false );  console.log( !false );PS:它还可以将布尔值以外的另一种类型转换为布尔值并反转该值。但是您不需要知道这个例子。

偶然的你

至少你可以这样做:function nextSequence(){  console.log('Hello World');  $('body').off('keydown', nextSequence );}$('body').on('keydown', nextSequence );或更好(感谢Phil)$('body').one('keydown', function() {  console.log('Hello World');})或者在纯 JS 中:function firstSequence(){  console.log('Hello World');  document.removeEventListener('keydown',firstSequence)}document.addEventListener('keydown',firstSequence)

心有法竹

你已经否定了你的 if 条件它应该是if(started){}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript