JS代码混淆用哪种工具比较好?附一段奇怪的混淆代码
发布于 7 年前 作者 chapgaga 6008 次浏览 来自 问答

之前用过的混淆,只是把多个文件编译成一个文件,去掉空格,变量名变短。 下面这段,有点看不懂了。

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跳过编译过程性能更高

回到顶部