javascript - 为什么会打印出 10?

标签 javascript

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

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

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

也许有人可以提供明确的解决方案。我期待大家的迅速回复。

最佳答案

您只能使用六个不同的字符来编写和执行任何 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"?

关于javascript - 为什么会打印出 10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26323776/

相关文章:

javascript - 如何在 AngularJS 的 ng-repeat 中查找循环号

javascript - csvtojson 转换器忽略我的文件名,只是将 undefined

javascript - Jquery Hashtag 链接系统(显示用户所在的页面)

javascript - 无法将类添加到 $(this) 的下一个元素

javascript - Firebase Web SDK - 事务导致 ('child_added' 、 func.. 被调用

javascript - jQuery:如何使用函数的返回值到另一个函数

javascript - 找到开始字符串的制表符数量的最佳/最快方法是什么?

javascript - 无法从 jQuery Ajax 调用获得正确的返回值

javascript - 如何在代码隐藏中获取 javascript 数组

javascript - Expressjs静态javascript文件未加载