【问题标题】:Javascript expression evaluation - confusionJavascript 表达式求值 - 混淆
【发布时间】:2018-09-11 00:42:20
【问题描述】:

我有一个像下面这样的表达式

console.log('isSuperAdmin ' + user.user_role === "SUPER_ADMIN");

在控制台上打印 false。但是,显然user.user_role 的值确实是"SUPER_ADMIN",并且在DevTool 上,当我将鼠标悬停在表达式user.user_role === "SUPER_ADMIN" 上时,我会弹出true。你能告诉我,为什么表达式最后被评估为false

PS:我是 Javascript 新手,所以请指出正确的方向。

【问题讨论】:

  • 谷歌搜索“JavaScript 运算符优先级”。优先级有点像,JS 为您放置括号。
  • 您是否也期望1 + 2 === 2 是真的?

标签: javascript javascript-objects


【解决方案1】:

+ 操作在=== 之前完成,因此最简单的解决方案是用() 将其包围,但如果将第二个语句作为另一个参数添加到console.log() 可能会更好,所以您的调试窗口可以以适当的方式显示它。

console.log("text" + 1 === 1);
console.log("text" + (1 === 1));
console.log("text", 1 === 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多