推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
sudoy

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

  •  
  •   sudoy · Jun 7, 2020 · 4441 views
    This topic created in 2348 days ago, the information mentioned may be changed or developed.

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

    natsji
    natsji
    Jun 7, 2020 via Android
    1
    Chrome 有 js 美化插件,安装一下就行了
    ysc3839
    ysc3839
    Jun 7, 2020
    3
    是框架编译后的样子,也是故意压缩尺寸。这些代码只是为了能执行,不是为了给人看的。
    snw
    snw
    Jun 7, 2020
    4
    主要为了减小文件大小,顺便降低可读性给仿站稍稍增加难度。
    systemcall
    systemcall
    Jun 8, 2020 via Android
    5
    加了混淆,有那种工具
    sneezry
    sneezry
    Jun 8, 2020 via iPhone❤️5
    6
    主要是压缩代码,提高加载速度,节省带宽资源。压缩的策略也并不神秘,几个典型的例子:

    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
    em70
    Jun 8, 2020
    7
    故意的
    Doracis
    Doracis
    Jun 8, 2020
    8
    有一些 js 是压缩后的,比如你看的大多数 xxx.min.js 都是这种的,如果你想读一读,建议找 xxx.js, 不是压缩版的通常要大一些,为了加载速度,挂网站上的大多都是压缩后的了
    AV1
    AV1
    Jun 8, 2020
    9
    这是混淆压缩优化后的代码呀,减小体积,加快速度。给机器执行的东西,要可读性干什么?干嘛要读它?
    wizardoz
    wizardoz
    Jun 8, 2020
    10
    1. 保护了源码
    2. 节省了带宽
    zzzmh
    zzzmh
    Jun 8, 2020
    11
    可读性很差才是正常的,可读性强还得了?爬虫满天飞,盗版遍地走
    sudoy
    sudoy
    OP
    Jun 8, 2020
    12
    谢谢各位!非常有帮助 @natsji @tanranran @ysc3839 @snw @systemcall @sneezry @em70 @Doracis @DOLLOR @wizardoz @zzzmh
    zzzmh
    zzzmh
    Jun 8, 2020
    13
    @sudoy 我也挺喜欢看别人网站写的怎么样的,不过一般是看 CSS 得,想看 JS 源码的话还是建议看看 GitHub
    shuangya
    shuangya
    Jun 8, 2020 via Android
    14
    1.压缩体积,减小带宽。
    2.混淆代码,一定程度上防止破解。
    3.可运行,比如 JSX/Vue 的语法一般是不能或者不推荐直接运行的。
    4.兼容性,打包的时候会进行一些向下兼容,比如 async 、const 之类的会转成低版本浏览器兼容的语法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2589 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 04:24 · PVG 12:24 · LAX 20:24 · JFK 23:24
    ♥ Do have faith in what you're doing.