慕運維8079593
2023-02-17 15:47:32
有人可以在代碼中解釋這里的邏輯。為什么如果變量“started”已經(jīng)為 false 并且此事件的條件僅在 started 不是 false 時運行,為什么如果事件偵聽器中的條件本身違背變量“started ”的值它會運行?function nextSequence(){ console.log("Hello World"); }var started = false;$("body").on("keydown",function(){ if(!started){ nextSequence(); started=true;}});
3 回答

搖曳的薔薇
TA貢獻1793條經(jīng)驗 獲得超6個贊
在!
布爾值之前反轉(zhuǎn)布爾值。于是就true
變成了false
。并false
成為true
。
console.log( false ); console.log( !false );
PS:它還可以將布爾值以外的另一種類型轉(zhuǎn)換為布爾值并反轉(zhuǎn)該值。但是您不需要知道這個例子。

偶然的你
TA貢獻1841條經(jīng)驗 獲得超3個贊
至少你可以這樣做:
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)
添加回答
舉報
0/150
提交
取消