Автоматическая вставка точек с запятой и операторы возврата [дубликаты]
На этот вопрос уже есть ответ здесь:
Каковы правила для JavaScript?s автоматическая вставка точек с запятой (ASI)? 4 ответаКак вы, возможно, знаете, ECMAscript пытается быть умным и автоматически вставитточка с запятой если бы ты ненапиши это явно. Простой пример
function foo() {
var bar = 5
return bar
}
все равно будет работать как положено. Но есть некоторые предостережения, если вы полагаетесь на это. Если мы переписать эту функцию так
function foo() {
var bar = 5
return
{
bar: bar
}
}
..это функция теперь будет возвращатьundefined
потому что переводчик вставит эту точку с запятой сразу послеreturn
заявление (чтоЭто причина, по которой вы всегда должны использовать фигурные скобки в одной строке с оператором).
Однако, зная все это, ямне интересно, какбезопасныйreturn
утверждение, как следующее, для всех браузеров и версий
function foo() {
var a = true,
b = true,
c = false;
return a
&& b
&& c;
}
Я просто написал похожееreturn statement
в производственной среде. Просто потому, что я знал опроблемы" с ECMAscript, не слишком умным насчет вставки точки с запятой I 'Мне интересно, если этот код работает на 100%. В моих первых тестах на FF / Chrome / IE (последние версии) это было вполне нормально, но так ли это на самом деле?
Лиавтоматическая вставка точки с запятой "просыпайся" если есть что-то еще, кромеreturn
утверждение в этой строке? Кто-нибудь может предоставить подробности об уровне реализации об этом?