En el artículo anterior ya comenzamos a mostrar una primera lista de funciones que se pueden usar con el API de la consola. En este segundo capítulo vamos a completar este listado y a ofrecer algunos ejemplos más.
var miFruta = {
"nombre": "Mandarina",
"color": "Naranja",
"Acidez": "Moderada",
"comer": function(){
alert("Pelo y luego me como la mandarina");
}
}
console.dir(miFruta);
Esto mostrará el contenido completo del objeto que se ha cargado en la variable miFruta(). La diferencia con console.log() y console.dir() es que al hacer el log() sobre un objeto nos aparece el nombre del objeto con un link para poder examinarlo. Si pulsamos el link veremos exactamente lo mismo que si hacemos un console.dir() directamente.
Por ejemplo, si se examina un elemento del DOM de Javascript, como este:
var encabezado = document.getElementById("encabezado");
console.dir(encabezado);
Veremos toda la lista de los atributos de ese elemento de la página, igual que lo que veríamos en la pestaña de DOM de Firebug al inspeccionar ese elemento.
console.dirxml(document.getElementById("milista"));
//con eso conseguimos el código de una supuesta lista que tiene el id="milista"
function paraTraza(param){
console.trace();
}
function probarFirebug(){
paraTraza(encabezado);
}
probarFirebug();
En este supuesto se llama primero a probarFirebug() y desde aquí se llama a paraTraza(). Entonces en paraTraza() hacemos un console.trace(), con lo que obtenemos la traza completa de llamadas a funciones hasta llegar al lugar donde está el console.trace(). En este caso serían dos funciones, primero probarFirebug() y luego paraTraza(). Además, en el listado de la traza, podremos pulsar sobre esas funciones para acceder a su código en la pestaña de script de Firebug.
A la propia función console.group() se le indican parámetros con cadenas o variables que sirvan para formar el titular de ese grupo.
Además, como se podrá ver en el siguiente ejemplo, se debe indicar con una llamada a console.groupEnd() el momento en el que deseamos cerrar el grupo.
console.group("migrupo");
console.log(1);
console.log(2);
console.log(3);
console.groupEnd();
for (j=0; j<5; j++){
console.count("Iteraciones en el bucle for-j: ");
}
Mostrará en la consola un mensaje como "Iteraciones en el bucle for-j: 5". Si volvemos a iterar ese bucle, el mensaje de consola se actualizaría para mostrar que las iteraciones ahora son 10 y cada vez que general que se pase por una llamada a console.count() de actualizará el mensaje incrementando el número de veces que se ejecutó esa sentencia.
Se pueden llevar varias cuentas de paso con console.count() al mismo tiempo. Para aclararse a qué contador se debe acumular se tiene que indicar como parámetro en el método el nombre del contador que se desea actualizar.
function funcionPila1() {
funcionPila2();
}
function funcionPila2() {
funcionPila3();
}
function funcionPila3() {
throw new Error('lanzando excepción');
}
Son funciones que se llaman la una a la otra, hasta llegar a funcionPila3() que lanza una excepción. Ahora podemos ver el siguiente código try-catch:
try {
funcionPila1();
} catch (miExcepcion) {
console.exception(miExcepcion, 'Encontrada una excepcion');
}
Se intenta ejecutar funcionPila1() dentro de un bloque try. Eso provocará una llamada sucesiva a varias funciones, que se invocan unas a otras hasta llegar a funcionPila3(), que lanza una excepción. Al haberse captado esa excepción, se ejecutar el bloque catch y el método console.exception().
Como resultado obtendremos la excepción encontrada junto con la lista de llamadas a funciones ejecutadas, en orden inverso, para llegar a esa excepción.
En el siguiente artículo veremos ejemplos de unas de las funciones del API de consola que no hemos analizado en el anterior texto. Las funciones que nos hemos dejado sirven para analizar el tiempo de procesamiento de los scripts Javascript.