!!1=="1" 等于 True 和 > !!2=="2" 等于: False 同样,为什么 > "1"==true 等于 true 而 > "2"==true 等于 fal-6ren">
sách gpt4 ăn đã đi

javascript - 为什么 !!1= ="1"等于 true 而 !!2= ="2"等于 false?

In lại 作者:IT王子 更新时间:2023-10-29 02:51:51 25 4
mua khóa gpt4 giày nike

如标题所述,为什么:

> !!1=="1"

等于

ĐÚNG VẬY

> !!2=="2"

等于:

SAI

同样,为什么 > "1"==true 等于 ĐÚNG VẬY> "2"==true 等于 SAI

我很困惑。这些只是 JS 中的错误还是这里发生了什么?

câu trả lời hay nhất

theo Operator precedence规则,逻辑 ! So sánh == 具有更高的优先级。因此,在这两种情况下,首先评估 !!

Để ý:câu trả lời này中已经解释了各种对象的真实性。我的。

第一个案例

!!1 == "1"

!1 将被评估为 SAI,bởi vì 1 被认为是 Truthy。再次否定我们得到 ĐÚNG VẬY。所以表达式变成了

true == "1"

现在,当您使用 == 运算符时,强制规则开始生效,该运算符根据 The Abstract Equality Comparison Algorithm 进行评估在 ECMAScript 5.1 规范中定义,

6. If Type(x)Boolean, return the result of the comparison ToNumber(x) == y.

因此,ĐÚNG VẬY 将被转换为一个数字,根据 ToNumber algorithm for Boolean values 为 1 .现在表达式变成了

1 == "1"

现在,

4. If Type(x)Con sốType(y)Sợi dây, return the result of the comparison x == ToNumber(y).

因此,"1" 将被转换为一个数字,并根据 ToNumber thuật toán 给出 1 .这就是为什么它在第一种情况下显示 ĐÚNG VẬY 的原因。

第二种情况

此处应用相同的规则。

!!2 == "2"

成为

true == "2"

Sau đó

1 == "2"

trở nên

1 == 2

这不是 ĐÚNG VẬY,这就是第二种情况打印 SAI 的原因。

关于javascript - 为什么 !!1= ="1"等于 true 而 !!2= ="2"等于 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23693089/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress