为什么打印10?

时间:2014-10-12 09:41:20

标签: javascript

console.log(++[[]][+[]]+[+[]]);

为什么世界上会打印10而不是其他东西......?它让我疯狂了太久。我在阅读以下文章时发现了这一点:

http://tutorialzine.com/2013/12/the-10-weirdest-programming-languages/

也许有人可以提供明确的解决方案。我期待着你们迅速回应所有人。

1 个答案:

答案 0 :(得分:3)

您只能使用六个不同的字符来编写和执行任何JS代码。例如,这里是JS构造的一些表示

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

JS F*ck的证明和Why does ++[[]][+[]]+[+[]] return the string "10"?

的详细信息