Порядок подъема в JavaScript

function g () {
    var x;
    function y () {};
    var z;
}

Я хотел бы знать точно, в каком порядке приведенный выше код становится при подъеме.

Теория 1: Заказ междуvarс иfunctions остается как есть:

function g () {
    var x;
    function y () {};
    var z;
}

Теория 2: varсесть раньшеfunctions:

function g () {
    var x;
    var z;
    function y () {};
}

Теория 3: functionсесть раньшеvars:

function g () {
    function y () {};
    var x;
    var z;
}

Какая теория верна?

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

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