Permalink
Please sign in to comment.
47
JS-Strict-Mode.md
| @@ -0,0 +1,47 @@ | ||
| +# Strict Mode | ||
| + | ||
| +Strict Mode was introduced in ECMAScript 5 that allows you to place a program, or a function, in a “strict” operating context. This strict context prevents certain actions from being taken and throws more exceptions. | ||
| + | ||
| +Strict mode makes several changes to normal JavaScript semantics. | ||
| +* First, strict mode eliminates some JavaScript silent errors by changing them to throw errors. | ||
| +* Second, strict mode 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. | ||
| +* Third, strict mode prohibits some syntax likely to be defined in future versions of ECMAScript. | ||
| + | ||
| +Strict mode code and non-strict mode code can coexist in a same script. | ||
| + | ||
| + // Non-strict code... | ||
| + | ||
| + (function(){ | ||
| + "use strict"; | ||
| + | ||
| + // Define your library strictly... | ||
| + })(); | ||
| + | ||
| + // Non-strict code... | ||
| + | ||
| +### Invoking strict mode | ||
| + | ||
| +Strict mode applies to *entire scripts* or to *individual functions*. | ||
| + | ||
| +**Strict mode for scripts** | ||
| + | ||
| + // Whole-script strict mode syntax | ||
| + | ||
| + "use strict"; | ||
| + var v = "Hi! I'm a strict mode script!"; | ||
| + | ||
| +**Strict mode for functions** | ||
| + | ||
| + function strict(){ | ||
| + // Function-level strict mode syntax | ||
| + | ||
| + 'use strict'; | ||
| + function nested() { return "And so am I!"; } | ||
| + return "Hi! I'm a strict mode function! " + nested(); | ||
| + } | ||
| + | ||
| + function notStrict() { return "I'm not strict."; } | ||
| + | ||
| +**Basically it helps you make fewer errors, by detecting things that could lead to breakage which are not detected normally (non-strict mode).** | ||
| + | ||
| +*For more information check out this [MDN page](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Strict_mode).* |
0 comments on commit
c703aef