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)
}