Necesitamos tu ayuda para difundir nuestras reseñas referente a las ciencias informáticas.
La mayoría de los navegadores modernos tienen una consola en sus herramientas de desarrollo, útil para este tipo de depuración.
console.log(myvar);
Entonces obtendrá una interfaz bien mapeada del objeto / lo que sea en la consola.
Revisar la console
documentación para más detalles.
Forma más común:
console.log(object);
Sin embargo, debo mencionar JSON.stringify
que es útil para volcar variables en scripts que no son del navegador:
console.log( JSON.stringify(object) );
El JSON.stringify
La función también admite embellecimiento incorporado como lo señala Simon Zyx.
Ejemplo:
var obj = x: 1, y: 2, z: 3;
console.log( JSON.stringify(obj, null, 2) ); // spacing level = 2
El fragmento anterior se imprimirá:
"x": 1,
"y": 2,
"z": 3
Sobre caniuse.com puede ver los navegadores que admiten de forma nativa el JSON.stringify
función: http://caniuse.com/json
También puede usar la biblioteca de Douglas Crockford para agregar JSON.stringify
soporte en navegadores antiguos: https://github.com/douglascrockford/JSON-js
Documentos para JSON.stringify
: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
Espero que esto ayude 🙂
Escribí esta función JS dump()
para trabajar como PHP var_dump()
. Para mostrar el contenido de la variable en una ventana de alerta: dump(variable)
Para mostrar el contenido de la variable en la página web: dump(variable, 'body')
Para obtener un string de la variable: dump(variable, 'none')
/* repeatString() returns a string which has been repeated a set number of times */
function repeatString(str, num)
out = '';
for (var i = 0; i < num; i++)
out += str;
return out;
/*
dump() displays the contents of a variable like var_dump() does in PHP. dump() is
better than typeof, because it can distinguish between array, null and object.
Parameters:
v: The variable
howDisplay: "none", "body", "alert" (default)
recursionLevel: Number of times the function has recursed when entering nested
objects or arrays. Each level of recursion adds extra space to the
output to indicate level. Set to 0 by default.
Return Value:
A string of the variable's contents
Limitations:
Can't pass an undefined variable to dump().
dump() can't distinguish between int and float.
dump() can't tell the original variable type of a member variable of an object.
These limitations can't be fixed because these are *features* of JS. However, dump()
*/
function dump(v, howDisplay, recursionLevel)
howDisplay = (typeof howDisplay === 'undefined') ? "alert" : howDisplay;
recursionLevel = (typeof recursionLevel !== 'number') ? 0 : recursionLevel;
var vType = typeof v;
var out = vType;
switch (vType)
case "number":
/* there is absolutely no way in JS to distinguish 2 from 2.0
so 'number' is the best that you can do. The following doesn't work:
var er = /^[0-9]+$/;
if (!isNaN(v) && v % 1 === 0 && er.test(3.0))
out = 'int';
*/
break;
case "boolean":
out += ": " + v;
break;
case "string":
out += "(" + v.length + '): "' + v + '"';
break;
case "object":
//check if null
if (v === null)
out = "null";
//If using jQuery: if ($.isArray(v))
//If using IE: if (isArray(v))
//this should work for all browsers according to the ECMAScript standard:
else if (Object.prototype.toString.call(v) === '[object Array]')
out = 'array(' + v.length + '): n';
for (var i = 0; i < v.length; i++)
out += repeatString(' ', recursionLevel) + " [" + i + "]: " +
dump(v[i], "none", recursionLevel + 1) + "n";
out += repeatString(' ', recursionLevel) + "";
else
//if object
let sContents = "n";
let cnt = 0;
for (var member in v)
//No way to know the original data type of member, since JS
//always converts it to a string and no other way to parse objects.
sContents += repeatString(' ', recursionLevel) + " " + member +
": " + dump(v[member], "none", recursionLevel + 1) + "n";
cnt++;
sContents += repeatString(' ', recursionLevel) + "";
out += "(" + cnt + "): " + sContents;
break;
default:
out = v;
break;
if (howDisplay == 'body')
var pre = document.createElement('pre');
pre.innerHTML = out;
document.body.appendChild(pre);
else if (howDisplay == 'alert')
alert(out);
return out;