Javascript 表达式求值 - 困惑

标签 javascript javascript-objects

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

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

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

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

最佳答案

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

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

关于Javascript 表达式求值 - 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49600418/

相关文章:

javascript - 如何在 2 个单独的 Div 中自动调整文本大小

javascript - 如何在 JQuery 中复制/克隆散列/对象?

javascript - 在没有原型(prototype)的情况下创建的对象上使用 console.log 时出错 && 访问具有字符串属性的数组有效..如何?

javascript - Node js 速率限制

javascript - 在 Controller 之外使用 $http?

javascript - 如何在 three.js 中计算闭合形状的法线?

javascript - Canvas - 绘制线条但未显示在谷歌检查元素中

javascript - 使用构造函数创建对象与返回对象有区别吗?

Javascript 对象键只有在 console.log 展开后才能解析

javascript - JQuery 延迟 Ajax,将结果保存在调用对象中