var_dump в javascript

В джаваскріпті немає встроєного дебагу об'єкта(фреймворки до уваги не беруться) на зразок php-ї функції var_dump, але потреба у ньому є!

Для таких потреб користуюсь цим:

function dump(obj) {
    var out = '';
    if(obj && typeof(obj) == 'object'){
	    for (var i in obj) {
	        out += i + ": " + obj[i] + "\n";
	    }
	}
	else out = obj;
    alert(out);
}

Знайдено тут
  • +3
  • 27 листопада 2009, 16:34
  • wdAndriy

Коментарі (9)

RSS згорнути / розгорнути
+
+1
добре, шо рекурсивно не біжить ) а то від
var o = { }; o.p = o; dump(o);
впало би ) + дебаггери юзати простіше, нє? + заглушка для FX/Firebug:
var forgetDebugAlerts = function() {
        if ( window.console && window.console.log ) {
                window.alert = console.log;
        }
}
avatar

cyba

  • 27 листопада 2009, 17:32
+
0
Цілком з Вами згідний і для повсякденної роботи тільки дебагери.
Але… нещодавній приклад: помилка тільки в ІЕ6, нормального дебагера під нього ще не бачив, саме тут цей метод себе і виправдав. Так би мовити «кросбраузерний» дебаг, засобами самого джаваскрипта.
avatar

wdAndriy

  • 27 листопада 2009, 18:08
+
0
якшо не помиляюсь, шостий іє можна дебагати в vs без проблем разом із проходженням по пропертях об*єктів. чи вона з ним криво себе поводить? існує також Firebug Lite, який можна ембеднути в сторінку, яку тре продебажити. ембедиться він як звичайний скріпт, тому, вроді, немає бути проблем з іе6, хіба він офіційно не підтримується

давайте на «ти»? :red:
avatar

cyba

  • 27 листопада 2009, 18:22
+
0
Давай :)
На рахунок VS та Firebug Lite — не доходила до них справа, справлявся якось alret-ом та dump-ом.
avatar

wdAndriy

  • 27 листопада 2009, 18:45
+
+1
щодо js-дебагерів — це питання недавно на хабрі розглядали
avatar

wdAndriy

  • 27 листопада 2009, 18:16
+
0
ууу, дякую! я шось провтикав цей пост в рсс :(
avatar

cyba

  • 27 листопада 2009, 18:24
+
0
Використовувати alert() для дубагу небезпечно.
avatar

volopav

  • 25 грудня 2009, 16:07
+
0
Чому?
Розумію коли є цикли, чи просто можна завтикати…
В чому ще небезпека?
avatar

wdAndriy

  • 25 грудня 2009, 16:36
+
+1
Якщо є асинхронні запити до сервера, то можна втратити відповідь. Коли показується алєрт, то будь-яке виконання колбеків зупиняється, тому коли приходить відповідь, вона не опрацьовується.
avatar

volopav

  • 12 січня 2010, 16:59

Тільки зареєстровані й авторизовані користувачі можуть залишати коментарі.