what does strict mode do in javascript code example

Example 1: strict mode in javascript

/*
even though x is not defined with a keyword like var, let or const, the
browser won't throw an error
*/
x = 1;

function myFunc() {
  "use strict";
  
  /*
  this will throw an error as y is being assigned a value without it 
  being declared AND "use strict" has been used for the function
  */
  y = 4;
}

/*
Basically, "use strict" is a way for programmers to avoid bad habits by using
invalid syntax which browsers accept but is still wrong
*/

Example 2: What is strict mode in Java Script ?

Strict mode changes previously accepted "bad syntax" into real errors.

As an example, in normal JavaScript, mistyping a variable name creates a 
new global variable. In strict mode, this will throw an error, making it 
impossible to accidentally create a global variable.

In normal JavaScript, a developer will not receive any error feedback assigning
values to non-writable properties.

In strict mode, any assignment to a non-writable property, a getter-only 
property, a non-existing property, a non-existing variable, or a non-existing 
object, will throw an error.

Strict mode makes it easier to write "secure" JavaScript.

Example 3: strict mode

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.