From http://tech.pro/tutorial/1453/7-javascript-basics-many-developers-aren-t-using-properly