Automatyczne wstawianie średników i zwroty [duplikat]
To pytanie ma już tutaj odpowiedź:
Jakie są zasady automatycznego wstawiania średnika JavaScript (ASI)? 4 odpowiedziJak 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?