User Tools

Site Tools


java-script:strict-mode

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
java-script:strict-mode [2023/08/09 12:36] odeftajava-script:strict-mode [2023/08/09 12:41] (current) odefta
Line 41: Line 41:
  
 ===== Examples ===== ===== Examples =====
 +==== This will not fallback to window in strict mode ====
  
 <code javascript> <code javascript>
Line 54: Line 55:
 </code> </code>
 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.
 </code> </code>
 +
 +==== 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 = "test"; // This will throw an error undefined = "test"; // This will throw an error
 </code> </code>
 +
 +==== 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
 </code> </code>
 +
 +==== 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
 </code> </code>
 +
 +==== 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: 2023/08/09 12:36 by odefta