为什么+!{} [true]在javascript中输出1

时间:2012-10-24 00:23:53

标签: javascript

我在看这个视频 http://www.youtube.com/watch?v=Trr95ij1358

Baranovskiy先生强调javascript开发人员 应该知道这个评估的内容:

+!{} [TRUE]

所以我试了一下。

输出1

有人可以给我一个理由吗?

1 个答案:

答案 0 :(得分:2)

这被视为

将由toString值true标识的{}属性访问器的否定(bool强制转换)值转换为数字

所以,它变成了

+!{}["true"]
+!undefined
+true
1