我正在编写一个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