QAQ_ing 2022-04-12 22:37 采纳率: 33.3%
浏览 25
已结题

求解:关于使用if与switch做相同判断时,判断结果不同的问题

现象:使用if与switch做判断时,判断结果不同


```javascript
<script>
            document.addEventListener("keydown", (event) => {
                if (event.key === "ArrowUp" || "Up") {
                    console.log("if", event.key, "up");
                } else if (event.key === "ArrowDown" || "Down") {
                    console.log(event.key, "down");
                } else if (event.key === "ArrowLeft" || "Left") {
                    console.log(event.key, "left");
                } else if (event.key === "ArrowRight" || "Right") {
                    console.log(event.key, "right");
                }
                switch (event.key) {
                    case "ArrowUp" || "Up":
                        console.log("switch", event.key, "up");
                        break;
                    case "ArrowDown" || "Down":
                        console.log("switch", event.key, "down");
                        break;
                }
            });
        </script>


###### 运行结果及报错内容 
控制台:

```javascript
测试.html:13 if ArrowUp up
测试.html:23 switch ArrowUp up
测试.html:13 if ArrowDown up
测试.html:26 switch ArrowDown down
测试.html:13 if ArrowLeft up
测试.html:13 if ArrowRight up

为什么所有的按键都能过 event.key === "ArrowUp" || "Up" 判断

  • 写回答

3条回答 默认 最新

  • 门前大桥下. 2022-04-13 08:55
    关注
    if中的逻辑判断出错了
    event.key === "ArrowUp" || "Up"  的执行时候  
    第一:先进行event.key === "ArrowUp" 赋值
    第二在进行   前面赋值结果 || "Up"  
    加入按下 a  
    第一 a=== "ArrowUp"    ---->返回false
    第二 false|| "Up"     ----->"up"
    第三:"up"if中进行boolen转化 为true  所以只要按下key if条件始终都是true  
    需要调整为
    event.key === "ArrowUp"  || event.key === "Up"
    if(event.key === "ArrowUp"  || event.key === "Up"){......}
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。