平等但不大于或等于?

exe*_*ook 10 javascript boolean

omp比较任何东西undefined已被讨论了很多次,但今天我不得不比较数组中的项目,在某些时候,数组中的项目可能是undefined,我很好奇他们将如何相互比较.我发现那undefined == undefinedtrue,但同时undefined >= undefined却不是true.等一下,如果事情是平等的,那么大或平也意味着是真的吗?这就是逻辑的运作方式!

我可以接受ECMA标准所说的任何内容,我相信这些人是理智的,并且有充分的理由做好一切.但是,地球上的这种比较行为可能是什么原因呢?如果我正在实现,undefined我将返回undefined任何具有undefined操作数的比较.但他们选择返回boolean,然后为什么结果是这样的?

现在我认为最好的解决方案就是undefined以多种if语句的特殊方式处理任何外观.

    undefined === undefined: true
    undefined == undefined: true

    undefined !== undefined: false
    undefined != undefined: false
    undefined < undefined: false
    undefined > undefined: false
    undefined <= undefined: false
    undefined >= undefined: false
Run Code Online (Sandbox Code Playgroud)

zzz*_*Bov 3

但这种比较行为到底是什么原因呢?

ECMAScript规范并不是为了描述 JavaScript应该如何工作而编写的,而是为了描述 JavaScript实际如何工作编写的。

该语言在 Netscape Navigator 中实现得很快,并且包含许多诸如此类的“错误”,然后将其复制到 IE 的实现中。最终,ECMAScript 被标准化,但直到 JavaScript 广泛存在之后。标准化任何已经使用的语言都需要一定程度的向后兼容性。

<=并仅仅因为标准如此规定>=而偏离。标准之所以这么说,是因为它们最初是这样实施的。==