(function() {
...
...
}());
это просто способ заявить анонимную функцию и называть его
var a = 'g';
function foo() {
console.log(a);
a = 7; //
}
console.log(foo(), a);
здесь у объявляем переменная a = 'g' в javascript, если u объявляет переменную, используя ключевое слово "var", область этой переменной s i функция, то есть внутри этой функции (также в подфункции) каждый может ее использовать.
Затем u объявляет функцию foo, функция foo может видеть переменную a, поскольку foo объявляется внутри предыдущей функции. console.log (a) просто напечатайте значение a, чтобы он напечатал 'g', а затем изменил значение a на 7.
после объявления u call console.log (foo(), a), это означает, что u выполняет foo и печатает возвращаемое значение foo, которое является «undefined», потому что нет оператора возврата, а затем печатается значение a, которое после выполнения foo становится 7.
поэтому выход is:
g
undefined 7
Да, отладчик шагов. – Amit
Я голосую, чтобы закрыть этот вопрос не по теме, потому что ответ можно получить с помощью отладчика – Amit
, вы ничего не возвращаете из своей функции 'foo', поэтому' console.log (foo()) 'возвращает undefined – Pete