我想看看JavaScript对象的结构(用于调试)。PHP中有类似var_dump的东西吗?


当前回答

大多数现代浏览器在开发人员工具中都有一个控制台,这对这种调试很有用。

console.log(myvar);

然后你将在控制台中得到对象/任何东西的良好映射接口。

查看控制台文档了解更多详细信息。

其他回答

将JSON响应解析为HTML的一个很好的简单解决方案。

var json_response = jQuery.parseJSON(data);
html_response += 'JSON Response:<br />';

jQuery.each(json_response, function(k, v) {
    html_response += outputJSONReponse(k, v);
});

function outputJSONReponse(k, v) {
    var html_response = k + ': ';

    if(jQuery.isArray(v) || jQuery.isPlainObject(v)) {
        jQuery.each(v, function(j, w) {
            html_response += outputJSONReponse(j, w);
        });
    } else {
        html_response += v + '<br />';
    }

    return html_response;
}

在JavaScript中等效的var_dump ?很简单,没有。

但这并不意味着你就无能为力了。就像一些人建议的那样,使用Firebug(或其他浏览器中的等效工具),但与其他人建议的不同的是,当你有(稍微)更好的工具console.dir时,不要使用console.log:

console.dir(object)

打印对象的所有属性的交互式列表。这 看起来与您在DOM选项卡中看到的视图相同。

Firebug。

然后,在javascript中:

var blah = {something: 'hi', another: 'noway'};
console.debug("Here is blah: %o", blah);

现在你可以查看控制台,点击语句,看看里面有什么

最常见的方式:

console.log(object);

但是我必须提到JSON。Stringify用于转储非浏览器脚本中的变量:

console.log( JSON.stringify(object) );

JSON。正如Simon Zyx指出的那样,stringify函数还支持内置的修饰。

例子:

var obj = {x: 1, y: 2, z: 3};

console.log( JSON.stringify(obj, null, 2) ); // spacing level = 2

上面的代码片段将打印:

{
  "x": 1,
  "y": 2,
  "z": 3
}

在caniuse.com上,您可以查看原生支持JSON的浏览器。Stringify函数:http://caniuse.com/json

您还可以使用Douglas Crockford库来添加JSON。旧浏览器上的stringify支持:https://github.com/douglascrockford/JSON-js

JSON文档。stringify: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

我希望这对你有帮助:-)

你也可以试试这个函数。我不记得原作者了,但所有功劳都归他们。

工作就像一个魅力- 100%相同的var_dump在PHP。

来看看。

function dump(arr,level) { var dumped_text = ""; if(!level) level = 0; //The padding given at the beginning of the line. var level_padding = ""; for(var j=0;j<level+1;j++) level_padding += " "; if(typeof(arr) == 'object') { //Array/Hashes/Objects for(var item in arr) { var value = arr[item]; if(typeof(value) == 'object') { //If it is an array, dumped_text += level_padding + "'" + item + "' ...\n"; dumped_text += dump(value,level+1); } else { dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; } } } else { //Stings/Chars/Numbers etc. dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; } return dumped_text; } // Example: var employees = [ { id: '1', sex: 'm', city: 'Paris' }, { id: '2', sex: 'f', city: 'London' }, { id: '3', sex: 'f', city: 'New York' }, { id: '4', sex: 'm', city: 'Moscow' }, { id: '5', sex: 'm', city: 'Berlin' } ] // Open dev console (F12) to see results: console.log(dump(employees));