2009-11-27 705 views
38

JavaScript中變量名稱的最大長度是多少?JavaScript中變量名稱的最大長度

+0

在相關說明:我假設名稱長度在運行時性能沒有影響後,它是用JavaScript JIT編譯器編譯的。也許只是一個小的初始分析速度減慢,並且在未縮小的代碼上稍微長一點的js文件下載時間。另一件事:名字中的所有字符都很重要。與C64 Basic解釋器相比,您可以使變量名稱變得非常長,但解釋器只關注前兩個字符。 – user3015682 2015-01-23 21:09:28

+0

我想這是無限的...哈哈這是一個很好的問題:P – Nieck 2016-06-04 21:20:38

回答

21

正如我已經測試了早期的:

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

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

/* ]]> */ 
</script> 
</body> 
</html> 

此腳本工作按罰款。變量名稱長度超過512個字符。

我的猜測是,因爲Javascript是一種運行時解釋語言(或正式稱爲腳本語言),只要它引用一個已定義的變量,變量名的長度就沒有關係。

+7

這是正確的。 ECMAScript規範沒有提及任何限制(至少我發現),變量只是(概念上至少)函數調用激活對象(或全局對象)的屬性。由於屬性可以是任意字符串,所以限制將是字符串的最大長度。 – 2009-11-27 17:18:22

+0

json字段名長度呢?可以像JavaScript中的變量名一樣長嗎?例如100個字符 – Saifee 2014-10-07 10:00:02

+0

@Saifee LMGTFY - 我認爲這個帖子很好地回答你的問題:http://stackoverflow.com/questions/13367391/is-there-a-limit-on-length-of-the-key-string -in-JS-對象 – mauris 2014-10-07 13:00:29

15

我試過mauris' example,x10字符的數量,然後再次,然後再次,然後再次。

當可變長度爲513k個字符時,我的記事本++會像蝸牛一樣猛擊。然而,當我設法保存文件並在本地運行時,警報毫不猶豫地出現。

測試行:Chrome 19.0.1084.52,IE9,火狐11.0和Safari 5.1.5,歌劇11.62

由於JSBin只允許最多的<script></script>標籤內的65535個字符,我只設法創建一個頁面一個32.5k長度的變量:http://jsbin.com/ukunow/10