In the early days, var
keyword is used usually to define a variable, but it would bring some troubles, such as variable obfuscation and memory leaks about variable, firstly, let's learn about variable scope in Javascript:
there are only global and local scopes in Javscript before ES6 and thease are distinguished by function region. variables defined within a function are local and external variables are global. Variables defined by var
are declared at the top of their scope in advance and assigned the value underfined
regardless of where they are declared. Finally, variable lookup is bottom-up, so variables within a function cannot be accessed by the functions.
After ES6, let
and const
keyword appeared while block scope was introduced. Block scope is differentiated by { }
, so if, for, while, etc
all have their own block scope, but must use let, const
keyword declared variables and var
hasn't block scope yet. At the same time, let, const
haven't also hoisted-variable as var
do.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)