working not log ejemplo debugger debug consola chrome javascript debugging logging console

not - debug javascript firefox



Chrome/Firefox console.log siempre agrega una lĂ­nea que dice indefinido (5)

Cada vez que se ejecuta console.log , se agrega una línea que dice undefined al registro de salida.

Ocurre tanto en Firefox como en Chrome en Windows y Linux.


Aunque la respuesta de talkol está bien, intento ponerlo más directo:

JavaScript está diseñado como un lenguaje dinámico, lo que significa que el tipo (cadena, vacío, booleano ...) de un valor de retorno de función no está predefinido. Si una función no utiliza una declaración de devolución o una declaración de devolución vacía sin valor, JavaScript devuelve automáticamente indefinido. Eso significa que en JavaScript cada función devuelve algo, al menos indefinido.

Por lo tanto, la función console.log() en la consola de Chrome usa no o una declaración de devolución vacía, por lo que el valor de retorno de esta función no está definido. El valor de retorno de esta función también se muestra en la consola de Chrome.

[Si alguien sabe dónde encontrar la definición de la función console.log() en el código fuente de Google Chrome, coméntelo con el enlace, entonces incluso podemos ir más allá y ver el código real, sería agradable.]

Fuentes:


Lo que puede hacer es simplemente crear su propia función console.log like con un retorno para cambiar este comportamiento al hacer una gran cantidad de codificación en la consola de desarrollador. Aquí hay un ejemplo de cómo se ve eso en la consola de desarrollador:

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."


Si está ejecutando console.log() desde un archivo JS, esta línea undefined no debe agregarse.

Si está ejecutando console.log() desde la consola, tiene sentido. Esta es la razón: en la consola puede escribir el nombre de una variable (por ejemplo, intente escribir en la window ) e imprime información al respecto. Cuando ejecuta cualquier función vacía (como console.log) desde la consola, también imprime información sobre el valor de retorno, undefined en este caso.

Probé ambos casos en mi Chrome (Mac ver 23.0.1271.101) y, de hecho, veo la línea undefined cuando la ejecuto dentro de la consola. Este undefined también aparece cuando escribo esta línea en la consola: var bla = "sdfdfs"


Si está utilizando console.log para emitir múltiples valores en una sola línea, aquí hay una alternativa hacky:

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

(Mejores ideas bienvenidas, esto podría explotar en ciertas circunstancias)


Sigue la imagen para resolver este problema:

Ctrl + Shift + J