Автоматическая вставка точек с запятой и операторы возврата [дубликаты]

На этот вопрос уже есть ответ здесь:

Каковы правила для 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 утверждение в этой строке? Кто-нибудь может предоставить подробности об уровне реализации об этом?

Ответы на вопрос(3)

Ваш ответ на вопрос