我最近检查了一个javascript混淆指南。本指南中有一些简单的步骤。我可以理解$ = []
是一个空数组,我可以理解为什么在$=[$=[]];
$变为0之后,但在添加!$
(false)和{{1}之后我无法理解为什么}(零)我们得到“假”字符串。
任何人都可以向我解释这个吗?
提前致谢。
答案 0 :(得分:0)
我可以理解为什么在$ = [$ = []]之后; $变为0
不,它没有。 $
变为[[]]
,即一个空数组的数组。
我无法理解为什么在添加
!$
(false)和$
(零)后,我们会得到" false"串
你不会;但你的前提是错误的。添加false
和[[]]
时,您在布尔值和对象上使用+
operator,这将导致字符串连接:
> $ = [[]];
> String(!$)
"false"
> String($)
""
> !$+$
"false"