Saltar al contenido

¿Cuál es el equivalente en JavaScript de var_dump o print_r en PHP?

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;

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *