为啥实际应用中 Javascript 都是长这样子的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
sudoy

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

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

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

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

    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
        7
    em70  
       Jun 8, 2020
    故意的
    Doracis
        8
    Doracis  
       Jun 8, 2020
    有一些 js 是压缩后的,比如你看的大多数 xxx.min.js 都是这种的,如果你想读一读,建议找 xxx.js, 不是压缩版的通常要大一些,为了加载速度,挂网站上的大多都是压缩后的了
    AV1
        9
    AV1  
       Jun 8, 2020
    这是混淆压缩优化后的代码呀,减小体积,加快速度。给机器执行的东西,要可读性干什么?干嘛要读它?
    wizardoz
        10
    wizardoz  
       Jun 8, 2020
    1. 保护了源码
    2. 节省了带宽
    zzzmh
        11
    zzzmh  
       Jun 8, 2020
    可读性很差才是正常的,可读性强还得了?爬虫满天飞,盗版遍地走
    sudoy
        12
    sudoy  
    OP
       Jun 8, 2020
    谢谢各位!非常有帮助 @natsji @tanranran @ysc3839 @snw @systemcall @sneezry @em70 @Doracis @DOLLOR @wizardoz @zzzmh
    zzzmh
        13
    zzzmh  
       Jun 8, 2020
    @sudoy 我也挺喜欢看别人网站写的怎么样的,不过一般是看 CSS 得,想看 JS 源码的话还是建议看看 GitHub
    shuangya
        14
    shuangya  
       Jun 8, 2020 via Android
    1.压缩体积,减小带宽。
    2.混淆代码,一定程度上防止破解。
    3.可运行,比如 JSX/Vue 的语法一般是不能或者不推荐直接运行的。
    4.兼容性,打包的时候会进行一些向下兼容,比如 async 、const 之类的会转成低版本浏览器兼容的语法。
    About     Help     Advertise     Blog     API/a>     FAQ     Solana     1173 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 23:48 PVG 07:48 LAX 16:48 JFK 19:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86