技术解析

为啥实际应用中 Javascript 都是长这样子的?
0
2021-08-16 21:50:18
idczone

现在会用原生 Javascript 写点东西,Vue 粗略地学了一些皮毛,还没学完。经常看到别人网站放的 JS 外链里面,都是很难看懂的 JS 。比如这个。请问这种是用 JS 框架(比如 Vue )写好以后编译成成品的样子?还是说作者故意为了压缩尺寸弄成这个样子?感觉可读性很差


Chrome 有 js 美化插件,安装一下就行了

https://www.jsjiami.com/

是框架编译后的样子,也是故意压缩尺寸。这些代码只是为了能执行,不是为了给人看的。

主要为了减小文件大小,顺便降低可读性给仿站稍稍增加难度。

加了混淆,有那种工具

主要是压缩代码,提高加载速度,节省带宽资源。压缩的策略也并不神秘,几个典型的例子:
1 、更换变量名。好的变量名能让代码更容易被人读懂,但变量名叫 priceForSingleItem 还是叫 a 对电脑来说都一样,所以压缩代码时,变量名从 a 到 z 换着用,不够了还有 aa,ab 。
2 、更换代码逻辑表达方式。if 能让代码逻辑更加清晰,比如 if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) { console.log("闰年"); },压缩后就可能变成(!a%4&&a%100||!a%400)&&console.log("闰年"),这两段代码执行结果是一样的。

故意的

有一些 js 是压缩后的,比如你看的大多数 xxx.min.js 都是这种的,如果你想读一读,建议找 xxx.js, 不是压缩版的通常要大一些,为了加载速度,挂网站上的大多都是压缩后的了

这是混淆压缩优化后的代码呀,减小体积,加快速度。给机器执行的东西,要可读性干什么?干嘛要读它?

1. 保护了源码
2. 节省了带宽

可读性很差才是正常的,可读性强还得了?爬虫满天飞,盗版遍地走

谢谢各位!非常有帮助 @zzzmh

我也挺喜欢看别人网站写的怎么样的,不过一般是看 CSS 得,想看 JS 源码的话还是建议看看 GitHub

1.压缩体积,减小带宽。
2.混淆代码,一定程度上防止破解。
3.可运行,比如 JSX/Vue 的语法一般是不能或者不推荐直接运行的。
4.兼容性,打包的时候会进行一些向下兼容,比如 async 、const 之类的会转成低版本浏览器兼容的语法。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服