I think it is a matter of style and preference.
If you quickly want to build a prototype, implicit and automatic creation of variables can be fast and easy.
If you want to apply more rigorous procedures, then declaring all variables can be a better option. There are obvious advantages of declaring variables. But a downside is that if you want to change / refactor a variable, then you need to update a lot more in case of explicit declarations.