expression weak typing “JavaScript fatigue” slow installation times undefined is not a function (deprecated) thousands of tiny packages dynamic typing writing your own framework inheritance monkey patching jQuery runtime exceptions Native APIs maintainability TC39 backwards compatible forever undefined stringly typed makes me cry at night
• making a HTTP request • getting current time • generating random number • listening to DOM events • more generally, any interaction with the outside world — including the web browser
type system and the compiler do amazing job at error detection Programming without mutations and side-effects Explicit state management In fact, we have only scratched the surface here!