嗨,我正在阅读一篇文章,发现相当奇怪的结果下面的代码在javascript返回2.
!+[]+!+[]
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释.
将表达式分解为正确的操作顺序,您有:
(!(+[])) + (!(+[]))
Run Code Online (Sandbox Code Playgroud)
首先,[]将其转换为数字+,结果是0.不要问我为什么,它只是这样:p可能埋在规范的某个地方.
!0 很简单 true
所以你最终得到了true + true,再次投射到数字,导致1 + 1 = 2
要获得9分,你需要重复9次:
!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[] == 9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |