Automatyczne wstawianie średników i zwroty [duplikat]

To pytanie ma już tutaj odpowiedź:

Jakie są zasady automatycznego wstawiania średnika JavaScript (ASI)? 4 odpowiedzi

Jak zapewne wiesz, ECMAscript próbuje być inteligentny i automatycznie wstawiśredniki jeśli nie napisałeś tego wyraźnie. Prosty przykład

function foo() {
    var bar = 5

    return bar
}

będzie nadal działać zgodnie z oczekiwaniami. Ale są pewne zastrzeżenia, jeśli na tym polegasz. Jeśli ponownie przepiszemy tę funkcję w ten sposób

function foo() {
    var bar = 5

    return
    {
        bar: bar
    }
}

.. ta funkcja teraz powróciundefined ponieważ interpreter wstawiłby ten średnik bezpośrednio poreturn instrukcja (to powód, dla którego zawsze powinieneś wprowadzać nawiasy klamrowe w tym samym wierszu, co instrukcja).

Jednak wiedząc o tym wszystkim, zastanawiam się teraz, jakbezpieczny a return oświadczenie, takie jak poniżej, w przeglądarkach i wersjach

function foo() {
    var a = true,
        b = true,
        c = false;

    return a 
            && b
            && c;
}

Właśnie napisałem podobnyreturn statement w środowisku produkcyjnym. Tylko dlatego, że wiedziałem o „problemach”, gdy ECMAscript nie był zbyt mądry w kwestii wstawiania średników, zastanawiam się teraz, czy ten kod działa w 100%. W moich pierwszych testach na FF / Chrome / IE (najnowsze wersje) wydaje się to być w porządku, ale czy naprawdę?

Czy toautomatyczne wstawianie średnika „pobudka”, jeśli jest coś innego niżreturn oświadczenie w tej linii? Czy każdy może podać szczegółowe informacje na temat wdrożenia?

questionAnswers(3)

yourAnswerToTheQuestion