2013-08-15 14 views
5

Mam uruchomiony JavaScript Lint na projekcie, aby sprawdzić typowe błędy programowania. Jestem uderzanie ten błąd:Błąd składni: brakująca nazwa zmiennej

SyntaxError: missing variable name

Na tej linii:

var char, font; 

Od Googling, znalazłem, że błąd pojawia się, gdy słowo zarezerwowane jest używana jako nazwa zmiennej; ale sądząc po MDN's list, nie jest zarezerwowane ani char ani .

Na czym polega problem?

+0

jslint. com nie zgłasza błędu. – Barmar

Odpowiedz

7

Nieważne, znalazłem odpowiedź, czytając What is the 'char' keyword used for?.

Widocznie char została zarezerwowana w ECMA 3, ale usuwane jako zarezerwowanego słów kluczowych w ECMA 5.

Mam przemianowany na mój var teraz, aby uniknąć potencjalnych problemów wynikających ze starymi wdrożeń.

+4

Czy nie byłoby miło, gdyby błąd był jaśniejszy. Być może coś tak intuicyjnego jak słowo "X" Reserved zostało uznane za zmienną ". To znaczy, tłumacze JS wiedzą, które migające słowo jest problemem, prawda! – user66001

0

Ponieważ to pytanie zostanie zwrócone na pierwszej stronie wyszukiwania Google pod kątem JS Missing variable name, i uważam, że jest to najbardziej odpowiednie z innych pytań SO, które wspominają ten błąd, zamierzam szczegółowo inny powód tego błędu tutaj:

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

0

Rozwiązałem to, wprowadzając zmiany w moim kodzie.

miałem:

var a = 1, 
    b = 2; 

Zmieniłem go do tego (przez pomyłkę), która powoduje błąd:

var a = 1, 
var b = 2; 

postanowiłem go na:

var a = 1; 
var b = 2;