Without strict mode, this code runs without warning:
mistake = 10 // Creates global variable
With strict mode, it throws an error: "mistake is not defined". Strict mode also prevents you from using reserved words as variable names, catches duplicate parameter names, and stops you from deleting variables.
These protections seem minor, but they prevent hours of debugging mysterious bugs. When you use modern JavaScript modules, strict mode is enabled automatically.