- 主题:看不懂奇葩代码,已经哭昏在公厕!!!
不是。
利用了js的特性。
1+[] 得到 '1'
0+[] 得到 '0'
+true +false 得到 1,0
true+1,false+1得到2,1
! [], !! [] 分别是 true, false
+[], +![] --> 0
'1' + '2' --> '12'
神奇的js
【 在 o00000000 (haha) 的大作中提到: 】
: 一串正则表达式?
--
FROM 58.249.74.*
写 1 就人类可读,其他语言也可以解析。
写 !![] ,就只有js引擎可以了
另外,这个不是人手工些的, 程序生成的,比如 1 就替换成 +!![] 或者 +(!+[])
'1'就替换成 (+!![]+[])
【 在 waitingc (waitingc) 的大作中提到: 】
: 那 !![] 含义就是明确的是1,为什么不直接写1呢?这个表达式的值是可以直接计算出
来的呀
--
FROM 58.249.74.*
应该是 有个代码模版, 然后自动生成的。
【 在 cnxs (coder) 的大作中提到: 】
: 还好吧,就是自执行运行了b函数,不过没仔细看内部干啥了
: 这种代码属于完全不可维护的
--
FROM 120.85.184.*