3

可能重复:
JavaScript 中变量名的最大长度

在阅读一点 JS 时,我心想:我的名字能有多长?

    function myNormalFuncName () {//...}
    var myNormalVarName = 'how long?';

所以我的问题是它可以持续多久?是否有任何机制可以阻止这种情况的发生,或者是否会引发任何错误?或者甚至可能是溢出或类似的东西?或者它会正常工作吗?

也许它更多地取决于实施?那么现代浏览器怎么样。

很想听听熟练的开发人员对此有何了解。

4

2 回答 2

8

至少 999999 个字符都可以

var code = 'var ' + Array(1000000).join("a") + ' = 1;';
eval(code);
alert( window[Array(1000000).join("a")] ); //1
于 2012-11-08T20:30:00.920 回答
0

这将取决于实现(浏览器 JS 引擎)。甚至可能是动态类型语言(如 JS)的某些实现根本没有限制,更像是通过达到最大文件大小或类似的限制来施加限制,而不是函数名称中的最大字符和/或变量名。

但是,通常您应该避免使用“长”函数名和/或变量名,事实上,大多数优秀的压缩工具会在您的 JS 文件上运行时为您缩短这些名称。原因当然是为了减少在访问您的站点时将资源(如 JS 文件)下载到浏览器所需的带宽量。

于 2012-11-08T20:42:54.130 回答