alhassy / alhassy/JavaScriptCheatSheet
Error about using var
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 221
- Forks
- 23
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
> In the same way, for the same purpose, we may use `var` but it has undesirable properties; e.g., its declarations are in the global scope and no error is raised using `var x = ⋯` if `x` is already declared.
This is at the end of the _Types_ section. First bullet point of three.
The part that says _"its declarations are in the global scope"_ is incorrect.
Later, in the _Scope and Statements_ section, you say...
>`let`, `const` declare local bindings; `var` always makes global ones!
Which again is incorrect. You can try this...
```javascript
function f() {
var x = 1;
}
console.log(x); // => Uncaught ReferenceError: x is not defined
```
...and see that `x` is **not** defined in the global scope. It will be local to the `f` function.
The difference about `var` and `let` in what regards scope is:
- `var` bindings reach either _function scope_ or the _global scope_. `let` bindings can also be limited to _block scope_.
- `var` declarations are hoisted to the start of the scope. `let` bindings are not (*)
(*) To be more precise they are but have a mechanism that prevents usage before declaration and will throw an error, while `var` won't.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Avaliação
Esta issue ainda não foi avaliada.