Javascript var_dump (PHP) için bir eşdeğer var mı?

9 Cevap php

Biz bir nesne Javascript ne yöntemleri / alanları görmek gerekir.

9 Cevap

Diğerleri de söylediğim gibi, kundakçı kullanabilirsiniz, ve bu Firefox üzerinde hiçbir endişe sizi dışarı sıralamak. Krom & Safari böylece kodunuzu bu tarayıcılar arasında taşınabilir olması, Firebug'ın konsolda neredeyse aynı arayüze sahip yerleşik bir geliştirici konsolu var hem de. Diğer tarayıcılar için, var Firebug Lite.

Kundakçı sizin için bir seçenek değilse, o zaman bu basit bir script deneyin:

function dump(obj) {
    var out = '';
    for (var i in obj) {
        out += i + ": " + obj[i] + "\n";
    }

    alert(out);

    // or, if you wanted to avoid alerts...

    var pre = document.createElement('pre');
    pre.innerHTML = out;
    document.body.appendChild(pre)
}

Ben her özelliğini uyaran karşı tavsiye ederim: Bazı nesneler özellikleri bir sürü var ve bütün gün orada O. "," Tamam "," Tamam "," Tamam "butonuna tıklayarak olacağım .. kahretsin ki ben mal oldu "arıyor.

Eğer firefox kullanıyorsanız o zaman firebug plug-in konsol nesneleri inceleyen mükemmel bir yoldur

console.debug(myObject);

Alternatif Bu gibi (yöntemler dahil) özellikleri ile döngü yapabilirsiniz:

for (property in object) {
    // do what you want with property, object[property].value
}

Modern tarayıcılarda bir sürü aşağıdaki sözdizimini destekler:

JSON.stringify(myVar);

Size bunun için console.debug (nesne) kullanabilirsiniz yeterli ifade edilemez. Eğer bir yaşam için bunu, bu teknik size saatlik bir yıl kelimenin tam anlamıyla yüzlerce kurtaracak: p

console.dir kundakçı ya google-chrome web müfettiş birinde (bağlantılı sayfanın altına doğru) çıktı bir nesnenin özellikleri interaktif bir liste olacak.

Ayrıca bakınız this Stack-O answer

Firebug kullanıyorsanız, çıktı bir nesne için console.log kullanmak ve konsolda bir köprü, explorable öğe alabilirsiniz.

Gelen değişkenin türünü bilmiyorum olanlar için nickf fonksiyonu hakkında iyileştirme biraz:

function dump(v) {
    switch (typeof v) {
        case "object":
            for (var i in v) {
                console.log(i+":"+v[i]);
            }
            break;
        default: //number, string, boolean, null, undefined 
            console.log(typeof v+":"+v);
            break;
    }
}

Ben nickf cevabını gelişmiş, bu yüzden ardışık nesneler aracılığıyla döngüler:

function var_dump(obj, element)
{
    var logMsg = objToString(obj, 0);
    if (element) // set innerHTML to logMsg
    {
        var pre = document.createElement('pre');
        pre.innerHTML = logMsg;
        element.innerHTML = '';
        element.appendChild(pre);
    }
    else // write logMsg to the console
    {
        console.log(logMsg);
    }
}

function objToString(obj, level)
{
    var out = '';
    for (var i in obj)
    {
        for (loop = level; loop > 0; loop--)
        {
            out += "    ";
        }
        if (obj[i] instanceof Object)
        {
            out += i + " (Object):\n";
            out += objToString(obj[i], level + 1);
        }
        else
        {
            out += i + ": " + obj[i] + "\n";
        }
    }
    return out;
}

var obje = 'nesne';

console.log (obje);