我有一个问题,不是关于JS代码混淆(它不是真正的主题),而是为了理解JS if else else符号。
当我们在JS代码上使用混淆工具时,生成的代码包含如下语句:
(0xA6, 78.) <= 0x204 ? val : otherVal
我知道if Else语句和reduce版本。 在这个例子中,混淆工具使用其他十六进制数字的数字(对此可以)
但是符号:
( value , other value )
为什么要这样做,为了什么?
感谢您的帮助,了解这一点。
答案 0 :(得分:3)
答案 1 :(得分:1)
嗯,以逗号分隔的列表仅评估最右外的值,在这种情况下是数字78
。它也可能看起来像
(0xA6, 42, 11, 78.)
它仍将评估为78
(最后的小数点只是可选的)。第二个数字只是数字516
的八进制版本。所以实际上这条线是
78 < 516 ? val : otherVal
这是一个用三元运算符编写的非常简单的条件,它也可以写成
if( 78 < 516 ) {
// assign val somewhere
} else {
// assign otherVal somewhere
}