gpt4 book ai didi

javascript - If 语句将 true 视为 false

转载 作者:行者123 更新时间:2023-11-30 18:59:42 27 4
gpt4 key购买 nike

我在 Javascript 中偶然发现了一个我无法理解的极其奇怪的事件。

这是一个非常简单的 if 语句:

let hours = 20;

我在这里设置了一个断点,并在调试器中设置了hours = 0我在调试器中测试 !hours 以确认结果为 true,然后单击继续运行 if声明。

if (!hours) {
console.log("Hours is false: " + hours);
} else {
console.log("Hours is true: " + hours);
}

要记录的预期结果:

Hours is false: 0

记录的实际结果:

Hours is true: 0

enter image description here

^ 鼠标悬停在 小时 上,因此当前值可见

只有当 hours 最初设置为整数,然后在调试器中设置为 0 时才会发生这种情况。Javascript 是否有一些关于真值即使在更改后仍保持其状态的模糊规则?

或者这是调试器和代码之间的差异(如果为真,基本上会破坏控制台的意义)?

到底为什么会这样?

最佳答案

检查这个,打开 devtools 并运行代码片段,将范围值更改为 0 或在控制台中输入 hours = 0。两者都可以测试它

Chrom 版本:版本 79.0.3945.88(官方构建)(64 位)

let hours = 20;
debugger
if (!hours) {
console.log("Hours is false: " + hours);
} else {
console.log("Hours is true: " + hours);
}

关于javascript - If 语句将 true 视为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59645197/

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