withstatements are not allowed in strict mode.
- All variables must be declared in strict mode. A
ReferenceErroris thrown if you assign a value to an undeclared variable, function, parameter, or property.
- Functions invoked as functions have a this value of undefined.
- When a function is invoked with
apply(), the this value is equal to the first argument of
- Assignments to nonwritable properties and attempts to create new properties on nonextensible objects throws a
- Code passed to
eval()cannot declare variables or define functions in the caller's scope. Instead, variables and function definitions get created in a new scope created for
eval(). This scope is discarded when the
document.write(x); //writes value of first parameter arguments = "A string argument passed to a function" //changes value of the first parameter document.write(x); //still writes the original value of x
- If the
deleteoperator is followed by an unqualified identifier like a variable, function, or function parameter name, then a
- If you try to
- A syntax error is thrown if an object literal has two or more properties with the same name.
- A syntax error is thrown if a function declaration has two or more parameters with the same name.
- Octal literals are not allowed.
argumentsidentifiers should be treated as keywords. You are not allowed to change their value. Also, you can't declare them as variables, functions, function parameters, or as a parameter to a
- Access to the call stack is restricted.
TypeError's are thrown using
arguments.calleefrom inside a strict mode function. Strict mode functions also have
argumentsproperties that throw
TypeError's when read.