How "NaNundefined"[10] ="e" Or ([+[][[]]
How "NaNundefined"[10] ="e" Or ([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]] = "e"?
可能的重复项:
吗?
你能解释一下为什么++[[]][+[]]+[+[]] = 10
众所周知,备忘单是我们能找到的完成事情的最短方法通过使用字符集。我无法忍受它是如何执行的。谁能澄清一下?
如何"NaNundefined"[10] ="e"
或([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]] = "e"
?
"NaNundefined"[10] ="e"
很容易 - e
是字符串中的第十一个字符。
([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]] = "e"
有点难,但您可以轻松地将其拆分:
[+[][[]]] -> [ NaN ]
[][[]] -> undefined
[ NaN ] + undefined -> "NaNundefined"
++[[]][+[]] -> 1
[+[]] -> "0"
1 + "0" -> "10"
"NaNundefined"["10"] -> "e"
第二个版本实际上是构造第一个版本的方法,(ab)使用javascript运算符的弱类型(例如,[NaN] + "" -> "NaN"
)。它还利用了 javascript 中的数组始终由字符串索引的事实(因此array[10]
等效于 array["10"]
)。
第二个版本可以被视为混淆,如果你想阻止某人理解代码。不过,它并没有多大用处,至少在日常编码生活中是这样。
索引
10 处的字符是 e: "NaNundefin
e d"[10] ="e"
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- Angular 2.0 with JavaScript or TypeScript?
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- SharePoint 2010 Jquery/JSON Rest Multiple OR语句-如何
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- GWT (or javascript) library for couchDB
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- jQuery"OR”;具有共享修饰符的选择器