Shorten up console.log() in JavaScript
Debugging in JavaScript can be irritating sometimes, repeatedly typing console.log() is an annoyance. I always make a shorter shortcut for it to save my time.
function d(msg) {
console.log(msg);
}
I'd like to make it as short as possible, so I choose a single letter function name ;)
Next time I need to debug some variable, I just need to type d(someVariable). Great, it's now prettier :p
Written by Akhyar A.
Related protips
6 Responses
ever tried:
var d = console.log ?
@greelgorke Well, var d = console.log won't work, because it will trigger a TypeError:)
Personally I don't mind using console.log, since, well... I use snippets. Anyway, if you want to be a little bit more elastic and pass all arguments to aliased console.log method, you could use something like that:
window.log = function(){
log.history = log.history || []; // store logs to an array for reference
log.history.push(arguments);
if(this.console){
console.log( Array.prototype.slice.call(arguments) );
}
};
// source: https://github.com/h5bp/html5-boilerplate/blob/943968c7c9da05ac7bb3ae9d6127b7d70f2d9f2e/js/plugins.js
This piece of code may look familiar to those, who used previous versions of HTML5 Boilerplate. The method was removed from plugins.js some time ago.
@paprikkastudio a TypeError? interesting... in node, and ff it works as expected, in chrome and safari there is a typeerror. i think it's when not a bug, then at least bad implementation. but hey! try that:
var f = console.log.bind(console)
;)
PS: of course this version is nearly the same as the opening tip :D
@greelgorke Yeah, I agree in 100%, that's really, really annoying when you work in node inspector and developer tools at the same time:)
Regarding fn.bind - I don't know why I didn't think of that! That'a a lot better solution, however you have to remember that IE8 even with developer tools enabled will throw an error, since it doesn't support ES5 bind method.
That's why I prefer typing log + [TAB] in my editor and just polyfill console.log in situations it's disabled (but that's another topic, of course).
@paprikkastudio IE8 is a different beast. i'm all for snippeting too. <3 sublime for it
Bear in mind that this could prevent some JS minifiers from properly removing debugging / console statements when this option is available, as most of them will remove console.xxxx calls only.
Have a fresh tip? Share with Coderwall community!
JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.
Security insights from Cside