2009-11-27 14 views
38

Qual è la lunghezza massima di un nome di variabile in JavaScript?Lunghezza massima del nome della variabile in JavaScript

+0

Su una nota correlata: suppongo che la lunghezza del nome non influenzi le prestazioni in fase di esecuzione dopo che è stata compilata con i compilatori JavaScript JIT. Forse solo una piccola analisi iniziale del rallentamento e un tempo di download del file js leggermente più lungo sul codice non minified. Un'altra cosa: tutti i personaggi in un nome sono significativi. In contrasto con l'interprete C64 Basic in cui è possibile creare nomi variabili molto lunghi, ma l'interprete ha prestato attenzione solo ai primi 2 caratteri. – user3015682

+0

Immagino che sia infinito ... Haha questa è una buona domanda: P – Nieck

risposta

21

Proprio come ho testato in precedenza:

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

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

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

Questo script funziona come per bene. Il nome della variabile è più lungo di 512 caratteri.

La mia ipotesi è che dal momento che Javascript è un linguaggio interpretato in runtime (o formalmente conosciuto come linguaggio di scripting), la lunghezza del nome della variabile non ha importanza fintanto che si riferisce a una variabile definita.

+7

Questo è corretto. Le specifiche ECMAScript non menzionano alcun limite (almeno quello che ho trovato) e le variabili sono solo proprietà (concettualmente almeno) dell'oggetto di attivazione della chiamata di funzione (o dell'oggetto globale). Poiché le proprietà possono essere stringhe arbitrarie, il limite sarebbe la lunghezza massima di una stringa. –

+0

che dire della lunghezza del nome del campo JSON? può essere tanto lungo quanto i nomi delle variabili in javascript? ad esempio 100 caratteri lunghi – Saifee

+0

@Saifee LMGTFY - Penso che questo post risponda bene alla tua domanda: http://stackoverflow.com/questions/13367391/is-there-a-limit-on-length-of-the-key-string -in-js-oggetto – mauris

15

Ho provato mauris' example, x10 la quantità di caratteri, poi ancora, poi ancora, poi ancora.

Quando la lunghezza della variabile è di 513 k caratteri, il mio Notepad ++ è slugging come una chiocciola. Tuttavia, quando sono riuscito a salvare il file ed eseguirlo localmente, l'avviso appare senza esitazione.

Testato su: Chrome 19.0.1084.52, IE9, Firefox 11.0, Safari 5.1.5, Opera 11.62

Dal JSBin consente solo un massimo di 65535 caratteri all'interno delle <script></script> tag, sono riuscito solo a creare una pagina con variabile di 32.5k: http://jsbin.com/ukunow/10

Problemi correlati