变量名和函数名在Javascript中实际可以使用多长时间?

变量名和函数名在Javascript中实际可以使用多长时间?,javascript,coding-style,naming-conventions,Javascript,Coding Style,Naming Conventions,可能重复: 当我读到一些JS的时候,我想:我的名字能有多长 function myNormalFuncName () {//...} var myNormalVarName = 'how long?'; 所以我的问题是它能持续多久?是否有任何机制阻止这种情况发生,或者是否有任何类型的错误抛出?或者甚至是溢油之类的?或者它能正常工作吗 也许这更取决于实施情况? 那么现代浏览器呢 希望了解熟练的开发人员对此的了解。至少999999个字符就可以了 var code = 'var '

可能重复:

当我读到一些JS的时候,我想:我的名字能有多长

    function myNormalFuncName () {//...}
    var myNormalVarName = 'how long?';
所以我的问题是它能持续多久?是否有任何机制阻止这种情况发生,或者是否有任何类型的错误抛出?或者甚至是溢油之类的?或者它能正常工作吗

也许这更取决于实施情况? 那么现代浏览器呢


希望了解熟练的开发人员对此的了解。

至少999999个字符就可以了

var code = 'var ' + Array(1000000).join("a") + ' = 1;';
eval(code);
alert( window[Array(1000000).join("a")] ); //1

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


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

在我链接的问题中没有提到规范,但这里有一些建议。这里没有提到最大长度。+1用于创造性地生成一个非常长的变量名。我很好奇你是怎么测试的。@JeremyJStarcher Google Chrome 23,Windows 7我想知道这是否取决于字符的类型,一些unicode字符需要比其他字符更多的内存空间,对吗?虽然我不认为这会给出一个不同的限制。所有BMP(最早使用的约65000个字符)字符每个字符占用2字节内存,BMP以外的字符(很少使用)占用4字节内存。