为什么JavaScript在非布尔&&语句中选择较大的数字?

Sup*_*tar 1 javascript fuzzy-logic boolean-operations

在JavaScript中,0 && 1求值为0,这是两者中的较低者.那么,为什么要0.1 && 1评价1,这两者中的较高者呢?同样,为什么要0 || 1评估1,但要0.1 || 1评估0.1

Jus*_*ner 8

它与哪个值更大无关,运算符将返回规范的适当值.

在的情况下,&&如果第一个参数是假的,它会被退回.否则返回第二个.在您的示例中0.1 && 1,0.1是一个真值y值,因此1返回.你可以轻松地尝试100000000 && 0.1看到它0.1被返回.0 && 1返回的原因0是因为0false-y所以,根据规范,返回第一个值.

同样,||如果第一个参数为true,则返回它.否则返回第二个.