• diallows global variables
  • silent failures throw error (like NaN = 5)
  • throw error when attempt delete undeleteable props
  • throw error if all obj prop name not unique
  • throw error if function param names not unique
  • forbid octal syntax
  • for with keyword
  • eval not introduce new vars
  • forbid delete plain names delete x
  • forbid arguments.callee

References

https://stackoverflow.com/questions/1335851/what-does-use-strict-do-in-javascript-and-what-is-the-reasoning-behind-it