Why does this print out 10?
本问题已经有最佳答案,请猛点这里访问。
1 | console.log(++[[]][+[]]+[+[]]); |
为什么这本书只印了10本而不是别的什么?这让我发疯太久了。我在阅读以下文章时发现了这一点:
http://tutorialzine.com/2013/12/the-10-weirdest-programming-languages/
也许有人能提供一个明确的解决方案。我期待着你们的迅速反应。
您只能使用六个不同的字符来编写和执行任何JS代码。例如,这里有一些对JS构造的表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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和细节在为什么++[[][+[]+[+[]]返回字符串"10"?