JavaScript中变量名的最大长度

All*_*owe 48 javascript name-length

JavaScript中变量名的最大长度是多少?

mau*_*ris 35

正如我之前测试的那样:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
/* <![CDATA[ */

var aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = 'test';
alert(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa );

/* ]]> */
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这个脚本很好用.变量名称超过512个字符.

我的猜测是,由于Javascript是一种解释型语言(或称为脚本语言),只要它引用已定义的变量,变量名称长度就无关紧要了.

  • 这是对的.ECMAScript规范没有提到任何限制(至少我已经发现)和变量只是(概念上至少)函数调用的激活对象(或全局对象)的属性.由于属性可以是任意字符串,因此限制将是字符串的最大长度. (10认同)
  • @mauris 我知道这很旧,但 JS 不是脚本语言,它是编译的 (2认同)

Pac*_*ier 24

我已经尝试了mauris'例子,x10字符数量,然后再次,然后再次,然后再次.

当变量长度为513k个字符时,我的Notepad ++就像蜗牛一样.然而,当我设法保存文件并在本地运行时,警报毫不犹豫地出现.

测试:Chrome 19.0.1084.52,IE9,FireFox 11.0,Safari 5.1.5,Opera 11.62

由于JSBin只允许<script></script>标签内最多65535个字符,因此我只设法创建一个长度为32.5k的页面:http://jsbin.com/ukunow/10