wiki/content/20201111092510-javascript_strict_mode.md

1 KiB

date id title
20201111 c5fef6b1-c659-42ef-8b51-7657df6743e8 JavaScript Strict Mode

Description

Strict mode makes several changes to normal JavaScript semantics:

  • Eliminates some JavaScript silent errors by changing them to throw errors.
  • Fixes mistakes that make it difficult for JavaScript engines to perform optimizations: strict mode code can sometimes be made to run faster than identical code that's not strict mode.
  • Prohibits some syntax likely to be defined in future versions of ECMAScript.
function canYouSpotTheProblem() {
  "use strict";
  for (counter = 0; counter < 10; counter++) {
    console.log("Happy happy");
  }
}

canYouSpotTheProblem();
// → ReferenceError: counter is not defined

In strict mode the `this` binding holds the value `undefined` in functions that are not called as methods:

"use strict";

function doSomething() {
    console.log(this)
}