Chrome / Firefox console.log sempre acrescenta uma linha dizendo indefinido

Toda vez que console.log é executado, uma linha dizendo undefined é anexada ao log de saída.

Acontece tanto no Firefox quanto no Chrome no Windows e no Linux.

Se você estiver executando console.log() partir de um arquivo JS, essa linha undefined não deve ser anexada.

Se você está rodando console.log() partir do próprio console, faz sentido. É por isso: No console, você pode digitar um nome de uma variável (por exemplo, tentar digitar a window ) e imprimir informações sobre ela. Quando você executa qualquer function void (como console.log) do console, ela também imprime informações sobre o valor de retorno, undefined neste caso.

Eu testei ambos os casos no meu Chrome (Mac ver 23.0.1271.101) e realmente vejo a linha undefined quando eu corro dentro do console. Este undefined também aparece quando escrevo esta linha no console: var bla = "sdfdfs"

Embora a resposta do talkol seja boa, eu tento colocar isso em ordem:

JavaScript é projetado como uma linguagem dinâmica, o que significa que o tipo (string, void, boolean…) de um valor de retorno de function não é pré-definido. Se uma function não usar uma instrução de retorno ou uma instrução de retorno vazia sem valor, o JavaScript retornará automaticamente indefinido. Isso significa que, em JavaScript, cada function retorna alguma coisa, pelo menos indefinida.

Portanto, a function console.log() no console do Chrome usa no ou uma instrução de retorno vazia, para que o valor de retorno desta function seja indefinido. Esse valor de retorno da function também é exibido no console do Chrome.

[Se alguém souber onde encontrar a definição da function console.log() no código fonte do Google Chrome, por favor, comente com o link, então podemos ir mais longe e ver o código real, seria legal.]

Fontes:

Siga a figura para resolver este problema:

 Ctrl + Shift + J 

O que você pode fazer é simplesmente criar sua própria function console.log com um retorno para alterar esse comportamento ao fazer muita codificação no console do desenvolvedor. Aqui está um exemplo do que parece no console do desenvolvedor:

 console.log('I hate seeing the next line stating the obvious.') I hate seeing the next line stating the obvious. undefined log = function(l){return l} function log() if(1 === 2){console.log('1 is not equal to 2.')}else{log('No Shit Sherlock.')} "No Shit Sherlock." 

Se você estiver usando o console.log para emitir vários valores em uma única linha, aqui está uma alternativa hacky:

 var1 + ' ' + var2 + ' ' + var... 

(Melhores idéias bem-vindas, isso pode explodir em certas circunstâncias)