In JavaScript when you use strict mode the code you write is forced into a more disciplined design then JavaScript normally does. You have to declare your variables (I like that), writing to a read-only property will throw an error or use the wicked “with” statement.
Here is a simple table that I modified from the link:https://aka.ms/u5m1xy , go to that link to see useful examples. This one you could print out and put beside your development system, I find that useful.
Language element
Restriction
Error
Variable
Using a variable without declaring it.
Read-only property
Writing to a read-only property.
Non-extensible property
Adding a property to an object whose extensible attribute is set to false.
delete
Deleting a variable, a function, or an argument.
Deleting a property whose configurable attribute is set to false.
SCRIPT1045: Calling delete on expression not allowed in strict mode
Duplicating a property
Defining a property more than once in an object literal.
SCRIPT1046: Multiple definitions of a property not allowed in strict mode
Duplicating a parameter name
Using a parameter name more than once in a function.
SCRIPT1038: Duplicate formal parameter names not allowed in strict mode
Future reserved keywords
Using a future reserved keyword as a variable or function name.
SCRIPT1050: The use of a future reserved word for an identifier is invalid. The identifier name is reserved in strict mode.
Octals
Assigning an octal value to a numeric literal, or attempting to use an escape on an octal value.
SCRIPT1039: Octal numeric literals and escape characters not allowed in strict mode
this
The value of this is not converted to the global object when it is null or undefined.
eval as an identifier
The string "eval" cannot be used as an identifier (variable or function name, parameter name, and so on).
Function declared inside a statement or a block
You cannot declare a function inside a statement or a block.
SCRIPT1047: In strict mode, function declarations cannot be nested inside a statement or block. They may only appear at the top level or directly inside a function body.
Variable declared inside an eval function
If a variable is declared inside an eval function, it cannot be used outside that function.
SCRIPT1041: Invalid usage of 'eval' in strict mode
Arguments as an identifier
The string "arguments" cannot be used as an identifier (variable or function name, parameter name, and so on).
SCRIPT1042: Invalid usage of 'arguments' in strict mode
arguments inside a function
You cannot change the values of members of the local arguments object.