Skip to content

Instantly share code, notes, and snippets.

@user24
user24 / gist:1187386
Created September 1, 2011 21:48
naive debug function
// Crappy naive debug wrapper function which sucks
function debug(msg) {
console.log(msg),
}
@user24
user24 / gist:1187400
Created September 1, 2011 21:56
debug in use
var debug = true;
function parseJSON(json) {
debug && console.log('parsing json');
if(typeof json == 'string') {
json = JSON.parse(json);
}
debug && console.log('got json', json);
}
@user24
user24 / gist:1187424
Created September 1, 2011 22:09
Toggle Comments
// This block is commented out:
/**
bigBlockOfCode();
lalala();
fooBar();
if(someStuff()) {
doExtraThings();
}
/**/
@user24
user24 / gist:1188669
Created September 2, 2011 14:06
Revealing Module Pattern
// Define an object using the Revealing Module Pattern
var myCounter = function() {
// Both Private and Public methods and properties are defined here
var counter = 0;
function count() {
return 0+counter;
}
@user24
user24 / gist:1189300
Created September 2, 2011 17:55
Node memory leak?
var foo = [];
setInterval(function() {
foo.push(Math.random());
if(foo.length > 200) {
foo = foo.slice(-200);
}
console.log(foo.length);
}, 10);
@user24
user24 / gist:1201439
Created September 7, 2011 19:16
Async Loop Pitfall
// the following code outputs: 999999999
var someArray = [1,2,3,4,5,6,7,8,9];
for(var i=0 ; i<someArray.length ; i++) {
performSomeAsyncOperation("foo", function hereIsACallback() {
console.log(someArray[i]);
});
}
@user24
user24 / gist:1201490
Created September 7, 2011 19:33
Various For Loop Patterns
var i=0;
// 01234
for(i=0 ; i<5 ; i++) {
console.log('standard for loop', i);
}
// 55555
for(i=0 ; i<5 ; i++) {
setTimeout(function() {
@user24
user24 / option1.js
Created November 27, 2011 16:36
various code style options
var handling = false;
window.onSomeEvent = function handleEvent() {
if(handling) return;
handling = true;
/* some other handler code here which eventually switches handling off again */
};
var hasMultipleArgs = args.length > 1;
var argIsString = typeof arg == 'string';
var argIsSentence = ~arg.indexOf(' ');
var argIsFormattingOption = ~arg.indexOf('%');
if (hasMultipleArgs && argIsString && !argIsSentence && !argIsFormattingOption) { /*...*/ }
// see https://github.com/observing/devnull/blob/master/lib/logger.js#L364-367 for alternative style
<html>
<head>
<script>
function foo() {
alert('bar');
}
document.onclick = foo;
</script>