2011-12-10 10 views
36

Recientemente instalé node.js en mi máquina con Windows 7.node.js muestra "indefinido" en la consola

En la ejecución de JavaScript, recibo un mensaje indefinido junto con la ejecución correcta de la expresión.

¿Qué pasa aquí? No he notado ningún otro efecto secundario.

enter image description here

Respuesta

24

Simplemente escriba "hello world"; y presione enter ... devolverá "hello world" en lugar de undefined, por lo que no se mostrará undefined. console.log devuelve undefined y también registra argumentos en la consola para que pueda obtener múltiples mensajes.

+0

Gracias Esailija. Cuando no ingreso ninguna función o personaje; luego también se muestra "indefinido". ¿Puedes explicar lo que está pasando debajo del capó? –

+0

@SandeepGB, ¿qué esperas para no tener ninguna entrada? : P El valor de retorno de no ingresar nada tiene más sentido como 'indefinido' – Esailija

+2

Estaba tratando de entender qué está pasando. alessioalex respondió mi pregunta :) –

36

Las funciones de JavaScript siempre vuelven algo. Si no especifica algo para devolver en la función, 'indefinido' se devuelve por defecto (también puede ver esto en Firebug).

No se preocupe, esto no afecta nada, puede ignorarlo.

+0

+1. Gracias por la respuesta. ¿Hay alguna manera de deshacerse de "indefinido", cuál debería ser la sintaxis? –

+0

Si crea un programa (aplicación web o línea de comando), nunca obtendrá imágenes indefinidas "voladoras", así que no se preocupe por eso. – alessioalex

+0

Cuando no ingreso ninguna función ni ningún carácter; luego también se muestra "indefinido". ¿Puedes explicar lo que está pasando debajo del capó? –

16

Según lo señalado por otros, la función javascript siempre devolverá indefinido si no especifica ningún valor de retorno. Puedes simplemente ignorarlo. No va a causar ningún daño. Pero si te molesta demasiado, puedes desactivarlo en repl. Repl tiene esta propiedad ignoreUndefined que está configurado como falso de manera predeterminada. Puedes establecerlo en verdadero. Prueba esto:

module.exports.repl.ignoreUndefined = true; 
4

Si necesita activar el ignoreUndefined desde el interior de un módulo, puede utilizar la siguiente línea para simular AvinashB 's respuesta sin tener que escribir en la consola en solitario:

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n"); 
5

Bueno, la pregunta fue hecha hace algunos años, pero todavía hay otra manera de explicar lo que está sucediendo aquí.

Trate siguiente orden:

console.log("Hello World") || "Bye World"; 

Como función mencionada console.log()undefined vuelve normalmente y se puede elegir un mejor valor de retorno. Como la comparación no estricta (abstracta) considera undefined igual a false, el operador || le permite esa opción.

Teniendo en cuenta que es sólo una herramienta de depuración, esto no es necesario en el uso general, pero ayuda a comprender que la consola pantallas de texto enviados a la salida estándar y también evals el comando y pantallas el valor devuelto, o indefinido si no hay valor fue recibido.

+0

Hola @Melo, creo que este código se puede volver a escribir en una consola más agradable.log ("Hola mundo") || "Bye World". –

+1

Gracias @Vasfed por agregar formato. –

+1

Corregido @DevidFarinelli, gracias también. –

0

nodeundefined impresiones también porque EN GENERAL, muestra el valor de retorno de cada comando y console.log no devuelve nada.

Cuestiones relacionadas