Автоматическая вставка точек с запятой и операторы возврата [дубликаты]
This question already has an answer here:
What are the rules for JavaScript's automatic semicolon insertion (ASI)? 4 answersКак вы, возможно, знаете, ECMAscript пытается быть умным и автоматически вставитsemicolons если вы не написали это явно. Простой пример
function foo() {
var bar = 5
return bar
}
все равно будет работать как положено. Но есть некоторые предостережения, если вы полагаетесь на это. Если мы переписать эту функцию так
function foo() {
var bar = 5
return
{
bar: bar
}
}
..это функция теперь будет возвращатьundefined
потому что переводчик вставит эту точку с запятой сразу послеreturn
оператор (это причина, по которой вы всегда должны ставить фигурные скобки на одной строке с оператором).
Однако, зная все это, мне интересно, какsafe return
утверждение, как следующее, для всех браузеров и версий
function foo() {
var a = true,
b = true,
c = false;
return a
&& b
&& c;
}
Я просто написал похожееreturn statement
в производственной среде. Просто потому, что я знал о «проблемах» с ECMAscript, который не очень умен в отношении вставки точек с запятой, мне сейчас интересно, работает ли этот код на 100%. В моих первых тестах на FF / Chrome / IE (последние версии) это было вполне нормально, но так ли это на самом деле?
Лиautomatic semicolon insertion & Quot; пробуждению & Quot; если есть что-то еще, кромеreturn
утверждение в этой строке? Кто-нибудь может предоставить подробности об уровне реализации об этом?