( ! + [] + [] + ![] ) 结果背后的原因是什么

时间:2021-03-02 04:44:14

标签: javascript

详细说明,这一行:

(! + [] + [] + ![])

给出字符串 "truefalse"

我一直在试验它,但不能完全掌握发生的隐式转换,想知道结果背后的原因。

只是好奇。

1 个答案:

答案 0 :(得分:1)

false       =>  ![]
true        =>  !![]
undefined   =>  [][[]]
NaN         =>  +[![]]
0           =>  +[]
1           =>  +!+[]
2           =>  !+[]+!+[]
10          =>  [+!+[]]+[+[]]
Array       =>  []
Number      =>  +[]
String      =>  []+[]
Boolean     =>  ![]
Function    =>  []["filter"]
eval        =>  []["filter"]["constructor"]( CODE )()
window      =>  []["filter"]["constructor"]("return this")()

您可以在 http://www.jsfuck.com/ 找到更多相关信息。

相关问题