2014-06-09 17 views

Odpowiedz

44

Z powodu automatic semicolon insertion. Pierwszy kod jest taki sam jak

function func1() { 
    return; 
    { 
     foo: 'bar' 
    } 
} 

Jeśli zastanawiasz się, dlaczego ten kod nie produkują błąd składni, foo: jest label.

chodzi

Czy jest to cecha języka lub błąd?

To jest funkcja. Ale bardzo niebezpieczny. Najlepszym sposobem, aby zachować tę funkcję, jest trzymanie się spójnego stylu formatowania (sugerowałbym korzystanie z Google style guide, dopóki nie będziesz wystarczająco doświadczony, aby stworzyć własną).

+0

Zostałoby to poprawione poprzez link do [12.9 Deklaracji zwrotu] (http://www.ecma-international.org/ecma-262/5.1/#sec-12.9), który [Ejay wskazał] (http: //stackoverflow.com/questions/24120708/why-does-position-of-braces-in-javascript-matter#comment37213016_24120708). –

+0

JS nie kompiluje się. – Scimonster

Powiązane problemy