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

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

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

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