gpt4 book ai didi

Javascript `==` 永远不会尝试将其操作数转换为 false,但是?

转载 作者:行者123 更新时间:2023-11-28 15:30:12 25 4
gpt4 key购买 nike

我正在阅读JavaScript基础知识,我似乎不明白这个说法。该声明在JavaScript:权威指南,第 6 版第 47 页中给出。

它表示 JavaScript 的 == 从不尝试将其操作数转换为 bool 值。但是当你尝试这样做时:

var bool = true;
var boolConv = (bool == undefined);
console.log(boolConv); //-> returns false.

所以这里undefined被转换为false然后比较就发生了,对吗?那么这是否意味着 == 确实将 undefined 转换为 false,与书中所写的相反?

我确实也测试过这个,

var bool = false;
var boolConv = (bool == undefined);
console.log(boolConv); //-> returns false.

上面的代码片段也给出了 false。所以这就是我的问题,如果这两种情况都返回 false,比较中会发生什么?为什么他们都返回 false

最佳答案

您已经回答了自己的问题。如果 undefined == truefalseundefined == falsefalse,则 == 显然没有将 undefined 转换为 truefalse

这实际上刚刚到达 Abstract Equality Comparison Algorithm 的最后一步:

  1. Return false.

因为没有情况可以比较 Undefined 和 Boolean 类型的值。

关于Javascript `==` 永远不会尝试将其操作数转换为 false,但是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27672928/

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