Почему console.log говорит undefined, а затем правильное значение?

console.log("hi") gives 
undefined
hi

console.log(1+1) gives 
undefined
2

Является ли это строковым или целочисленным вычислением, я получаю undefined, затем правильный ответ.

Почему я получаю сообщение undefined? Есть ли хороший способ избежать этого?

Ответ 1

Консоль распечатает результат вычисления выражения. Результатом оценки console.log() является undefined, поскольку console.log явно не возвращает что-либо. У него есть побочный эффект печати на консоли.

Вы можете наблюдать то же поведение со многими выражениями:

> var x = 1;
undefined;

Объявление переменной не создает значения, поэтому снова undefined выводится на консоль.

В качестве контрпримера, выражения, содержащие математические операторы, производят значение, которое выводится на консоль вместо undefined:

> 2 + 2;
4

Ответ 2

undefined - это возвращаемое значение console.log(). Это стандартное поведение консоли Chrome JS

Ответ 3

Консоль показывает возвращаемое значение вашего ввода. console.log() ничего не возвращает, поэтому undefined.

Вы можете просто ввести прямо в консоль, чтобы получить результат

Ответ 4

Возвращает значение console.log(...).

Определите две функции, подобные этой, и вы поймете, почему.

function functionA() {
  return 1; 
}
function functionB() {
  return;
}

functionB() возвращает undefined.

enter image description here

Ответ 5

Это связано с тем, что console.log() не возвращает значение (т.е. возвращает undefined). Результат того, что вы ввели на консоль, сначала печатается на консоль, а затем немного позже сообщение от console.log доходит до консоли и также печатается.

Если браузер не показывает undefined, это означает, что он заметил, что вход в консоль печатается только на консоли, и поэтому пропускает показ результата.