JS代码混淆用哪种工具比较好?附一段奇怪的混淆代码
之前用过的混淆,只是把多个文件编译成一个文件,去掉空格,变量名变短。 下面这段,有点看不懂了。
enabled: !0,是什么意思? 这不是等价于enabled:true么,为何要写成enabled: !0?这是JS混淆工具干的么?
什么JS混淆能生成*** enabled: !0*** 这样的代码呢?
var e = {
enabled: !0,
configMode: 0,
debug: !1,
logLevel: 0,
showFixedSrc: !1,
}
9 回复
!0两个字符,true四个字符。
还有一个类似的压缩是Infinity === 1/0
@dislido 这样说那1和0只是一个字符
1和0不是Number类型吗…!0是布尔类型.
!0 === true
,而 1 !== true
,转换成 !0
/ !1
是恒等变换,1 和 0 则有可能出问题,比如:
if(e.enable === true){
}
这种判断,1 和 0 就和原来的产生歧义了
@dislido !0的性能会比true高么?
@chapgaga !0比true 高 因为true4个字符 还占空间
@ResJay 字节少,性能会高一些?
@chapgaga 对 如果要更高的话 以后还可以写01010101010101010101跳过编译过程性能更高
@ResJay 6了!哈哈~