【问题标题】:confusion on Javascript evaluation对 Javascript 评估的困惑
【发布时间】:2022-08-16 20:45:57
【问题描述】:
const a = 5 

const b =0

情况1:

a || b 

我会得到 5

案例2:

if (a || b ){console.log(true)}

true

在条件方面,我将返回 true,因此执行了 console.log

Case3: 

if (true ? 0 || 5 : false) {
  console.log(\'false\')
} else {
  console.log(\'true\') // <- this line get executed always
}

但我期待console.log(\'false\') 将被执行因为,在布尔值 5 或 0(T 或 F)=> T 中,所以它意味着 true

我可以知道为什么我错了吗?

  • \"但我预计 console.log(\'false\') 会被执行\" — 是的。
  • 你在你的 sn-p 中试过了吗?
  • 抱歉,您最后一点是错误的:它不会像您预期的那样打印第二个日志,而是第一个日志。尝试执行代码。
  • 让我先检查一下

标签: javascript


【解决方案1】:

我刚刚在 StackOverflow 中运行了您自己的代码,它按您的预期工作。 即我们得到错误的

请再次运行它,如果:3,只有条件被执行

[StackOverflow 代码片段 runnerRan on Browser

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2014-04-26
    • 2018-03-12
    • 1970-01-01
    相关资源
    最近更新 更多