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, - .