title:==JS中的操作:['[' ']==false-gt;真实的
计算以下表达式的值:
['']==false
首先,这两个操作数是对象类型和布尔类型。根据图1,需要将布尔类型转换为数值类型,将false转换为数值类型的结果为0,因此表达式变为:
['']==0
这两个操作数成为对象类型和数字类型。根据图1,对象类型需要转换为原始类型:
[].首先调用valueOf()。由于数组的valueOf()方法返回自身,因此结果不是原始类型。继续呼叫[]。toString()。
对于数组,toString()方法的算法是将每个元素转换成一个字符串类型,然后依次用逗号','连接,这样最后的结果就是一个空字符串'',它是原始类型的值。
此时,表达式变为:
''==0
这两个操作数成为字符串类型和数字类型。根据图1,有必要将字符串类型转换为数字类型。前面说空字符串变成数字0。然后表达式变成:
0==0
到目前为止,两个操作数的类型最终是一样的,结果显然是真的。
版权声明:title:==JS中的操作:['[' ']==false-gt;真实的是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。