4 Uncaught SyntaxError: Identifier 'number' has already been declared
?
, , var
, . . ECMAScript 8.3:
8.3
- , ECMAScript. , , . , .
[...]
ECMAScript , 22.
22: ECMAScript Component Purpose
LexicalEnvironment Identifies the Lexical Environment used to resolve identifier references made by code within this execution context.
VariableEnvironment Identifies the Lexical Environment whose EnvironmentRecord holds bindings created by VariableStatements within this execution context.
, JavaScript, "", , , , , .. , , , LexicalEnvironment
VariableEnvironment
. "-" , , , . LexicalEnvironment
, let
const
. VariableEnvironment
, var
.
13.3.2:
13.3.2
var , VariableEnvironment. Var , undefined . VariableEnvironment BindingIdentifier VariableDeclaration, .
, var
. , , VariableEnvironment
, var
, , VariableEnvironment
. number
, { … }
- , , number
. , , :
var number = 10
{
number = 42
}
console.log(number)
, let
const
. , { … }
.
var
" "? , number
window var
?
, var
VariableEnvironment
- let
const
. , ECMAScript var
, var
, ECMAScript/JavaScript. , let
const
, , , . , let
const
, . window
, - .