我正在編寫一個JavaScript腳本,當用戶按下鍵盤上的某個鍵時,如果它是指定的鍵之一,腳本將播放相應的聲音。如果用戶按下的鍵不是聲音鍵,例如「R」,那麼我希望腳本結束。現在,它返回:「不能設置屬性的'currentTime'爲null」即使我試圖用if(audio == false)return來結束它;爲什麼不使用代碼塊中的return來結束我的函數?不知道爲什麼我總是收到「無法設置屬性'currentTime'爲null」
我也很好奇編寫條件語句後,代碼塊在同一行上的規則是什麼。 (我下面的教程,它是第一次我看到它這樣做的方式。)
<script>
window.addEventListener("keydown", function(e){
var audio = document.querySelector(`audio[data-key="${e.keyCode}"]`)
console.log(audio)
// this function stops the function if you press a button that doesn't have a corresponding sound
if (audio == false) return;
audio.currentTime = 0;
audio.play();
});
</script>
你應該有明確===檢查空。在交互式控制檯中,嘗試輸入'false == null'並看看你得到了什麼。這個東西的規則是有點挑剔,所以默認顯式檢查,除非你確定它們是如何應用的。 – pvg