为啥实际应用中 Javascript 都是长这样子的?

2020-06-07 22:20:52 +08:00
 sudoy

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

3504 次点击
所在节点    JavaScript
14 条回复
natsji
2020-06-07 22:24:44 +08:00
Chrome 有 js 美化插件,安装一下就行了
tanranran
2020-06-07 22:29:45 +08:00
ysc3839
2020-06-07 23:36:52 +08:00
是框架编译后的样子,也是故意压缩尺寸。这些代码只是为了能执行,不是为了给人看的。
snw
2020-06-07 23:49:41 +08:00
主要为了减小文件大小,顺便降低可读性给仿站稍稍增加难度。
systemcall
2020-06-08 00:43:19 +08:00
加了混淆,有那种工具
sneezry
2020-06-08 02:02:40 +08:00
主要是压缩代码,提高加载速度,节省带宽资源。压缩的策略也并不神秘,几个典型的例子:

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("闰年"),这两段代码执行结果是一样的。
em70
2020-06-08 02:20:35 +08:00
故意的
Doracis
2020-06-08 08:55:31 +08:00
有一些 js 是压缩后的,比如你看的大多数 xxx.min.js 都是这种的,如果你想读一读,建议找 xxx.js, 不是压缩版的通常要大一些,为了加载速度,挂网站上的大多都是压缩后的了
DOLLOR
2020-06-08 09:06:03 +08:00
这是混淆压缩优化后的代码呀,减小体积,加快速度。给机器执行的东西,要可读性干什么?干嘛要读它?
wizardoz
2020-06-08 09:43:56 +08:00
1. 保护了源码
2. 节省了带宽
zzzmh
2020-06-08 09:48:35 +08:00
可读性很差才是正常的,可读性强还得了?爬虫满天飞,盗版遍地走
sudoy
2020-06-08 10:12:18 +08:00
谢谢各位!非常有帮助 @natsji @tanranran @ysc3839 @snw @systemcall @sneezry @em70 @Doracis @DOLLOR @wizardoz @zzzmh
zzzmh
2020-06-08 10:56:42 +08:00
@sudoy 我也挺喜欢看别人网站写的怎么样的,不过一般是看 CSS 得,想看 JS 源码的话还是建议看看 GitHub
shuangya
2020-06-08 11:33:39 +08:00
1.压缩体积,减小带宽。
2.混淆代码,一定程度上防止破解。
3.可运行,比如 JSX/Vue 的语法一般是不能或者不推荐直接运行的。
4.兼容性,打包的时候会进行一些向下兼容,比如 async 、const 之类的会转成低版本浏览器兼容的语法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/679506

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX