2015-11-04 6 views
1

Извините за очень плохое«название»...Chrome (`версия 46.0.2490.80 M`) инструменты для разработчиков и«неопределенных»

У меня есть простой скрипт работает в Chrome (Version 46.0.2490.80 m) инструментов для разработчиков. Где это undefined?

enter image description here

Этот же скрипт при запуске «нормально» работает, как ожидалось: enter image description here

+1

нажмите «snippets: ///1_21: 11' –

+1

Что вы подразумеваете под «Этот же сценарий при запуске« нормально »работает так, как ожидалось:«? – rajuGT

+1

«undefined» - это * возвращаемое значение * .forEach'. –

ответ

1

Это потому, что инструменты разработчика разбирает строку, которую Вы предоставили в консоль и выполнить ее как функцию и возврата/напечатайте возвращаемое значение независимо от того, какое заявление вы положили, возвращается.

Выполните приведенный ниже код, нет оператора возврата, поэтому он будет печатать 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 
})(); 

тогда, если она выполняется в сценарии браузера для разработчиков инструменты печатает все, что функция печатает и функция возвращает значение в вызывающую. (Здесь разработчикам не нужно печатать все возвращаемые значения функции, запускаемые сценарием браузера, тогда ваши журналы будут испорчены. Вы увидите случайные возвращаемые значения, возвращаемые каждой функцией.

Смежные вопросы