缩小javascript代码有什么好处?

kyu*_*ung 6 javascript

我正在阅读BemTv的代码.然后我看到了如下奇怪的Javascript代码.

//n = {} , r = [5,1]
! function e(t, n, r) {
    console.log(t)
    function i(s, a) {
        if (!n[s]) {
            if (!t[s]) {
                var c = "function" == typeof require && require;
                console.log(require);
                if (!a && c) return c(s, !0);
                if (o) return o(s, !0);
                throw new Error("Cannot find module '" + s + "'")
            }
            var u = n[s] = {
                exports: {}
            };
            t[s][0].call(u.exports, function(e) {
                var n = t[s][1][e];
                return i(n ? n : e)
            }, u, u.exports, e, t, n, r)
        }
        return n[s].exports
    }
    for (var o = "function" == typeof require && require, s = 0; s < r.length; s++) i(r[s]);
    return i
}({
    1: [function(e, t) {
        "use strict";
        t.exports = e("./src/main")
    }, {
        "./src/main": 46
    }],
    2: [function() {}, {}],
    3: [function(e, t) {
        ...........
Run Code Online (Sandbox Code Playgroud)

来源:http://cdn.clappr.io/bemtv/latest/p2phls.min.js

我的问题是:

  1. 代码行上'number'的含义是什么?似乎结果索引和返回函数对象的索引.这样对吗?

  2. 为什么作者写这样的代码?这种编码惯例有什么优点吗?

And*_*ena 10

正如@Jacob所说..缩小JavaScript意味着从客户端角度下载更少的字节.

通常,开发人员将在完整的评论版本中实现它,然后使用像UglifyJs这样的工具生成缩小版本.

通常会看到这些文件的两个版本:

  • myLib.js(原始版本,意味着包含在开发模式下进行调试)
  • myLib.min.js(缩小版,用于制作)

此外,随着Node的兴起,将代码库实现为独立的可读模块变得非常普遍,然后使用像WebpackBrowserify这样的捆绑工具 来生成单个捆绑包,它通常不仅包含您的缩小代码,而且还包含大部分代码.单个中的依赖项bundle.js.这很直接.


Uma*_*kar 5

缩小 JavaScript 代码的主要原因是

1)减少应用程序的页面加载时间。

2)许多用于安全目的,他们不想与他人共享代码。