Мне нужно отличить "0"
от 0
в Firebug console.log
на выходе.
Если вы введете console.log("0")
в консоль Firebug, вы получите 0
, так же, как если бы вы набрали console.log(0)
, но мне нужно, чтобы оно было "0"
.
Другими словами, ожидаемый вывод:
console.log("0")
> "0"
console.log(0)
> 0
Фактический
console.log("0")
> 0
console.log(0)
> 0
Как лучше всего решить эту проблему?
Я нашел некоторые обходные пути, такие как console.log("%o", "0")
или console.log(["0"])
, но они слишком неуклюжи и навязчивы, чтобы использовать их повсюду.
Я также безуспешно пробовал debug
и info
.
Кстати, консоль Chrome все делает правильно, но я еще не готов перейти на Chrome.
Я думаю о том, чтобы написать какую-нибудь обертку вокруг консольного объекта. Я не уверен, как это сделать правильно, но я попробую, если нет другого решения.
Итак, единственное решение, по-видимому, заключается в том, что вам нужно создать какую-нибудь обертку, которая выглядит следующим образом (основываясь на ответе @ wsanville):
var log_orig = console.log;
// No need to check for type, just use %o for everything
// Also, it gets messier for multiple arguments
console.log = function(s) { log_orig('%o', s); }
Но тогда возникает проблема с номерами строк, как описано в Как получить доступ к номерам строк при переносе Firebug (или аналогичных) Консоли api
Полагаю, мне следует подать ошибку Firebug или что-то еще, потому что в некоторых ситуациях это может быть очень важно.