Это потому, что инструменты разработчика разбирает строку, которую Вы предоставили в консоль и выполнить ее как функцию и возврата/напечатайте возвращаемое значение независимо от того, какое заявление вы положили, возвращается.
Выполните приведенный ниже код, нет оператора возврата, поэтому он будет печатать undefined
.
(function(){
[1,2,3].forEach(function(val) {
console.log(val);
});
//no return statement //Hence undefined
})();
Но посмотрите на нижний регистр, функция возвращает некоторое значение.
(function(){
[1,2,3].forEach(function(val) {
console.log(val);
});
return "YOU DONT SEE UNDEFINED NOW"; //prints the string
})();
тогда, если она выполняется в сценарии браузера для разработчиков инструменты печатает все, что функция печатает и функция возвращает значение в вызывающую. (Здесь разработчикам не нужно печатать все возвращаемые значения функции, запускаемые сценарием браузера, тогда ваши журналы будут испорчены. Вы увидите случайные возвращаемые значения, возвращаемые каждой функцией.
нажмите «snippets: ///1_21: 11' –
Что вы подразумеваете под «Этот же сценарий при запуске« нормально »работает так, как ожидалось:«? – rajuGT
«undefined» - это * возвращаемое значение * .forEach'. –