Javascript 需要解释术语[0]==![0]

Javascript 需要解释术语[0]==![0],javascript,Javascript,术语[0]==是什么意思![0]是什么意思?虽然它们返回true。但我需要解释它如何返回true,因为[0]的类型是object和![0]返回布尔值?那么他们是如何平等的呢?谢谢要理解这一点,请仔细阅读![0]首先是表达式。它的计算结果为false——因为[0](与JS中的任何对象一样)是一个真实值。所以这句话变成了 [0]==false 现在更容易了:false被转换为0(对于布尔->数字规则),[0]被对象转换为基本规则-首先转换为'0'(字符串),然后转换为0(数字)。显然,0等于0) 是

术语
[0]==是什么意思![0]
是什么意思?虽然它们返回
true
。但我需要解释它如何返回
true
,因为[0]的类型是object和![0]返回布尔值?那么他们是如何平等的呢?谢谢

要理解这一点,请仔细阅读
![0]
首先是表达式。它的计算结果为
false
——因为
[0]
(与JS中的任何对象一样)是一个真实值。所以这句话变成了

[0]==false

现在更容易了:
false
被转换为
0
(对于布尔->数字规则),
[0]
被对象转换为基本规则-首先转换为
'0'
(字符串),然后转换为
0
(数字)。显然,
0
等于
0

是的,这看起来很奇怪,但两者都

[0]==false

。。。而且

![0]==false


。。。计算为
true
:前面已经解释了前者,后者只是
false==false
。还有人对那些
==
Lint警告感到惊讶吗?)

要理解这一点,请阅读
![0]
首先是表达式。它的计算结果为
false
——因为
[0]
(与JS中的任何对象一样)是一个真实值。所以这句话变成了

[0]==false

现在更容易了:
false
被转换为
0
(对于布尔->数字规则),
[0]
被对象转换为基本规则-首先转换为
'0'
(字符串),然后转换为
0
(数字)。显然,
0
等于
0

是的,这看起来很奇怪,但两者都

[0]==false

。。。而且

![0]==false


。。。计算为
true
:前面已经解释了前者,后者只是
false==false
。还有人对那些
==
Lint警告感到惊讶吗?)

![0]
只是
false
,因为所有非
null
对象都强制转换为
true


当比较
[0]
false
时,它们被转换成数字-不要问为什么,这就是它的方式
[0]
首先转换为字符串
“0”
(数组通过将条目与
连接为分隔符转换为字符串),然后是数字
0
false
被强制转换为数字
0
,您就可以看到它:
[0]==![0]
相当于
0==0
,这是正确的。

![0]
只是
false
,因为所有非
null
对象都强制转换为
true


当比较
[0]
false
时,它们被转换成数字-不要问为什么,这就是它的方式
[0]
首先转换为字符串
“0”
(数组通过将条目与
连接为分隔符转换为字符串),然后是数字
0
false
被强制转换为数字
0
,您就可以看到它:
[0]==![0]
相当于
0==0
,这是正确的。

您已将表达式拆分为多个部分:

typeof([0]) // "object"
[0] == true // false
![0] == true // false
![0] == false // true

这是因为在JavaScript中,只有值
1
隐式转换为true,所以所有其他值都转换为false。
![0]
仅对假表达式求反,因此它变为
(false==false)==true

您已将表达式拆分为多个部分:

typeof([0]) // "object"
[0] == true // false
![0] == true // false
![0] == false // true

这是因为在JavaScript中,只有值
1
隐式转换为true,所以所有其他值都转换为false。
![0]
只对假表达式求反,因此它变成了
(false==false)==true

你是说JavaScript吗?如果不是,这与jQuery有什么关系?
==
不比较类型为什么有这么多接近的重复投票?这不是一个骗局。为什么人们都在谈论
==
?这与
=
==
之间的差异无关。你是说JavaScript吗?如果不是,这与jQuery有什么关系?
==
不比较类型为什么有这么多接近的重复投票?这不是一个骗局。为什么人们都在谈论
==
?这与
=
==
之间的差异无关,只有值1隐式转换为true-什么?事实上,恰恰相反:布尔值在比较中被转换为数字。你说“只有值1隐式转换为真”是什么意思?那似乎。。。不对?否则,这是一个不合理的答案。
只有值1隐式转换为true
-什么?事实上,恰恰相反:布尔值在比较中被转换为数字。你说“只有值1隐式转换为真”是什么意思?那似乎。。。不对?否则,答案就不合理了。