Isso é porque o console do browser também mostra o retorno do console.log
. E segundo a documentação, ele sempre retorna undefined
.
Teste, por exemplo, com console.log(10)
. Vai mostrar o 10
, e depois o undefined
(primeiro ele imprime o 10, e depois o browser mostra o retorno do console.log
).
Ou ainda, typeof console.log(10)
. Vai mostrar o 10
(pois é o console.log
imprimindo o valor), e depois undefined
, pois o retorno de console.log
é o valor undefined
.
Se você fizer isso fora do browser (por exemplo, num arquivo .js separado, e rodando com o Node), vai ver que no seu caso só vai imprimir null
.
Ou ainda, outro teste. Crie uma função que imprime o valor, e retorna "ok":
function imprime(algo) {
console.log(algo);
return 'ok';
}
let teste = null;
imprime(teste);
No console do browser, vai imprimir null
(o valor de teste
), e depois vai mostrar 'ok'
(o retorno da função imprime
). Testando fora do browser, vai mostrar somente null
.