Trabalhando com Datas em JavaScript

Trabalhar com datas em JavaScript se torna complicado quando queremos com exatidão trazer diferenças entre datas ou formatar datas para sair conforme precisamos.