详细说明,这一行:
(! + [] + [] + ![])
给出字符串 "truefalse"
我一直在试验它,但不能完全掌握发生的隐式转换,想知道结果背后的原因。
只是好奇。
答案 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/ 找到更多相关信息。