var confirm = confirm('Are you sure?');
Я только что протестировал это утверждение, и мне была дана ошибка, указав, что confirm
не является функцией.Javascript Statement Порядок выполнения
Я сразу обнаружил, что имя переменной переписывает его. Однако почему мой вопрос?
Я знаю, что функции являются первоклассными, и что объявление переменной с тем же именем, что и функция, перезапишет ее в относительной области. Но мое замешательство исходит из того, что, как я думал, было исполнением «справа налево», И.Е. вызов функции выполняется до определения адресата.
Определяется ли переменная в этом случае перед вызовом функции?
_ "станет ли переменная определяется в этом случае перед вызовом функции? »_ - Да. В пределах данной области все переменные определены до того, как выполняется код в этой области, и изначально им присваивается значение 'undefined'. Прочитайте переменную JS «подъем». – nnnnnn
выглядит отлично здесь http://jsfiddle.net/batug0o5/1/ –
'var' - это не исполняемый оператор, подчиненный правилам сверху вниз или справа налево или любому другому исполнению. Это ** декларация **, которая, как говорит @nnnnn, поднимается. –