java-script:strict-mode
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| java-script:strict-mode [2023/08/09 09:36] – odefta | java-script:strict-mode [2025/01/02 18:22] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 41: | Line 41: | ||
| ===== Examples ===== | ===== Examples ===== | ||
| + | ==== This will not fallback to window in strict mode ==== | ||
| <code javascript> | <code javascript> | ||
| Line 54: | Line 55: | ||
| </ | </ | ||
| In strict mode, **this** inside the **sayHello** function will be **undefined** when called without an object, leading to a TypeError when attempting to access properties on it. | In strict mode, **this** inside the **sayHello** function will be **undefined** when called without an object, leading to a TypeError when attempting to access properties on it. | ||
| + | |||
| + | ==== Cannot use global variables defined without var ==== | ||
| <code javascript> | <code javascript> | ||
| Line 59: | Line 62: | ||
| x = 3.14; // This will throw an error because x is not declared. | x = 3.14; // This will throw an error because x is not declared. | ||
| </ | </ | ||
| + | |||
| + | ==== Denial of usage of special variables / properties ==== | ||
| Assigning to Read-Only Global Variables and Properties: Assigning a value to a read-only property, a getter-only property, a non-writable global variable, or a non-writable property of an object will throw an error. | Assigning to Read-Only Global Variables and Properties: Assigning a value to a read-only property, a getter-only property, a non-writable global variable, or a non-writable property of an object will throw an error. | ||
| Line 66: | Line 71: | ||
| undefined = " | undefined = " | ||
| </ | </ | ||
| + | |||
| + | ==== Prevent the removal of variables / functions ==== | ||
| Deleting Variables, Functions, or Function Parameters: Attempting to delete variables, functions, or function parameters will throw an error. | Deleting Variables, Functions, or Function Parameters: Attempting to delete variables, functions, or function parameters will throw an error. | ||
| Line 74: | Line 81: | ||
| delete x; // This will throw an error | delete x; // This will throw an error | ||
| </ | </ | ||
| + | |||
| + | ==== Avoid duplicate parameter names ==== | ||
| Duplicate Parameter Names: Duplicate parameter names in function declarations will throw an error. | Duplicate Parameter Names: Duplicate parameter names in function declarations will throw an error. | ||
| Line 81: | Line 90: | ||
| function x(p1, p1) {} // This will throw an error | function x(p1, p1) {} // This will throw an error | ||
| </ | </ | ||
| + | |||
| + | ==== Deprecated octal syntax ==== | ||
| Octal Syntax: Octal syntax in ECMAScript 5 is deprecated, and strict mode will not allow it. | Octal Syntax: Octal syntax in ECMAScript 5 is deprecated, and strict mode will not allow it. | ||
java-script/strict-mode.1691573768.txt.gz · Last modified: (external edit)
