gpt4 book ai didi

javascript - Promise 中的比较表达式总是返回 true

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

我正在学习 Javascript 中的 Promise。但是当我尝试编写一些代码行时,我遇到了这个问题。我在 Promise Obj 中声明的“if”语句始终返回 true。这是信息:

  • 环境:Chrome 开发工具 - Chrome 开发工具 - Chromium 64.0.3282.140
  • 代码:

var status = false;
var promise = new Promise(function(resolve, reject) {
if (status) {
console.log("TRUE")
resolve({
value: 'true'
});
} else {
console.log("FALSE");
reject({
value: 'false'
});
}
});

  • 预期输出:假
  • 实际发生了什么:正确
  • 注意:无论“status”的值是多少,输出始终为真。
    我真的在这里寻找我的问题的解释。非常感谢。

最佳答案

status is a predefined variable在浏览器中。

当你给它赋值时,它会被转换成一个字符串。

false 变为 "false",这是一个真值。

这就是为什么你应该避免使用全局变量。与其他人的变量发生冲突从来都不是一件有趣的事情。


将您的代码包装在 IIFE 中以避免尝试在全局范围内创建变量。

(function() {

var status = false;
var promise = new Promise(function(resolve, reject) {
if (status) {
console.log("TRUE")
resolve({
value: 'true'
});
} else {
console.log("FALSE");
reject({
value: 'false'
});
}
});

}());

关于javascript - Promise 中的比较表达式总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53009282/

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