我有一个问题,不是关于JS代码混淆(这不是真正的主题),而是为了理解JS if else表示法。
当我们在JS代码上使用混淆工具时,生成的代码包含如下语句:
(0xA6, 78.) <= 0x204 ? val : otherVal
我知道if Else语句和reduce版本。在本例中,模糊工具使用带有其他十六进制基数数字(可以用于此)
但是符号:
( value , other value )
为什么要这样做,为了做什么?
感谢您的帮助来理解这一点。
发布于 2013-03-20 17:44:50
嗯,逗号分隔的列表只计算最外面的值,在本例中是数字78
。它也可能看起来像
(0xA6, 42, 11, 78.)
并且它的计算结果仍然是78
(末尾的小数点是可选的)。第二个数字只是数字516
的八进制版本。所以实际上这条线是这样的
78 < 516 ? val : otherVal
这是一个用三元运算符编写的非常简单的条件,它也可以写成
if( 78 < 516 ) {
// assign val somewhere
} else {
// assign otherVal somewhere
}
发布于 2013-03-20 17:43:15
https://stackoverflow.com/questions/15519897
复制相似问题