2012-06-19 19 views
9

que utiliza la consola de Chrome para escribir una descripción sencilla:¿Qué significa si console.log (4) muestra indefinido en la consola de Chrome?

console.log(4) 

y recibió el Salida:

4 

undefined

¿Qué significa la declaración indefinido? ¿La declaración indefinida implica la ejecución correcta? Si ejecutar la instrucción a través de un archivo html por separado y luego miro a la consola, la salida es sólo 4.

+1

posible duplicado de [Chrome/Firefox console.log siempre antepone una línea que dice undefined] (http://stackoverflow.com/questions/14633968/chrome-firefox-console-log-always-prepends-a-line-saying -definido) – Bergi

+0

no estoy seguro de que esto pueda ser un duplicado si se solicitó en '12, y el que se ha vinculado se ha preguntado en '13 ... –

+0

Creo que '¿Qué hilo tiene mejores y claras respuestas? también es un criterio al marcar una pregunta como duplicada. Es una forma de una mejor consolidación de hilos relacionados en SO. – RBT

Respuesta

10

el undefined es el valor de retorno de console.log(...).

Puede ver esto definiendo dos funciones en la consola, una que devuelve algo y la otra que no devuelve nada, p. de esta manera:

function f1() { 
    return 1; 
} 
function f2() { 
    return; 
} 

Y luego llamarlos por separado (manualmente)

f1(); // shows '1' 

y

f2(); // shows 'undefined' 

También tenga en cuenta el pequeño símbolo antes de que estos cadena de valor de retorno.

+0

Oh genial. ¿Esta función se implementa como tal para fines de depuración? – AnthonyS

+0

interesante: aparentemente la consola te da el valor de retorno más reciente, así que si llamas a f2(); f1(); el resultado es solo 1 – AnthonyS

+0

Al llamarlos uno detrás de otro en la misma línea, está descartando efectivamente el primer resultado. Por cierto, si pones 'var x = f1();', también verás '1', porque el resultado de esa expresión es' 1'. Por eso las afirmaciones como 'x = y = z = f1()' funcionan. – Bart

0

Lo he probado e incluso con una variable preestablecida, no funcionó en mi Safari:

i = 2; 
console.log(i); 

Esto parece explicar el error que WebKit (el motor de ambos Chrome y Safari) tiene: Link

Cuestiones relacionadas