2013-08-15 14 views
5

Sto eseguendo JavaScript Lint su un progetto per verificare errori di programmazione comuni. Mi colpisce questo errore:SyntaxError: nome variabile mancante

SyntaxError: missing variable name

Su questa linea:

var char, font; 

Da usare Google, ho trovato che tale errore viene visualizzato quando una parola riservata viene utilizzato come un nome di variabile; ma a giudicare dal numero MDN's list, né charfont è riservato.

Qual è il problema qui?

+0

JSLint. com non segnala un errore. – Barmar

risposta

7

Non importa, ho trovato la risposta leggendo What is the 'char' keyword used for?.

Apparentemente char era riservato a ECMA 3, ma rimosso come una parola chiave riservata in ECMA 5.

ho rinominato la mia var ora, per evitare potenziali problemi derivanti con le vecchie implementazioni.

+4

Non sarebbe bello se l'errore fosse più chiaro. Forse qualcosa di intuitivo come "La parola riservata X" ha cercato di essere dichiarata come variabile ". Voglio dire, gli interpreti JS sanno che la parola lampeggiante è il problema, giusto! – user66001

0

Poiché questa domanda viene restituita nella prima pagina di una ricerca su google per JS Missing variable name, e ritengo che sia la più appropriata delle altre domande SO che menzionano questo errore, vado a descrivere un altro motivo per questo errore qui:

When using bookmarklet code that has %20 HTMLEntity's in place of spaces, in (for example) Firefox's Scratchpad.

0

Ho risolto questo apportando queste modifiche al mio codice.

ho avuto:

var a = 1, 
    b = 2; 

ho cambiato in questo (per errore), che causano l'errore:

var a = 1, 
var b = 2; 

ho risolto con questo:

var a = 1; 
var b = 2;