gpt4 book ai didi

javascript - switch(true) 与 if(true) 返回的结果不同 (JavaScript)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:18 27 4
gpt4 key购买 nike

我正在为单击按钮时编写一个函数。有很多不同的按钮,所以我想使用 switch(true)声明而不是一长串 if...else if声明。

几个按钮用于数字,我已将数字放在 value<button> 的属性标签。但是,测试这两个函数会给出不同的结果。

switch(true) {
case (Number(button.value)):
console.log('thats a number');
break;
default:
console.log('NaN');
break;
}

if(Number(button.value)) {
console.log('thats a number');
} else {
console.log('NaN');
}

谁能解释一下为什么?我已经进行了彻底的测试,但一无所获,感觉这一定是某种技术差异 switchif处理语句。

最佳答案

switch statement使用 strict equality === 检查给定条件,而 if 接受一个值,该值被转换为 bool 值以进行检查。

你在switch中得到的是

true === Number(button.value)

并且该检查永远不会为真

关于javascript - switch(true) 与 if(true) 返回的结果不同 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com