This was a recent issue that I came across. I'm not sure that escaping a dollar sign with another dollar sign is a good practice, but I had no luck tracking down an elegant solution.
Iterating through and object that was inherited will return all prototypal members unless you use 'hasOwnProperty()'.
Always use a radix when using parseInt: parseInt('08', 10)
The performance implications of 'with' aren't apparent until you try to access an identifier that doesn't reside in the passed object. It must first search this object for the identifier before looking elsewhere. In the 'anti-pattern' example above, 'obj1' must be searched through to see if it contains 'obj2' before searching the scope chain.
Updating a variable and then editing the DOM once is much faster than updating the DOM multiple times!