# var, let, const

**URL:** <https://forum.itvdn.com/t/var-let-const/2053>\
**Category:** JavaScript\
**Created:** [30.07.2018 09:39:24 UTC](https://forum.itvdn.com/t/var-let-const/2053 "2018-07-30T09:39:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mariaverkovskaya](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/m/7993a0/32.png) [@mariaverkovskaya](https://forum.itvdn.com/u/mariaverkovskaya)\
**Post date:** [30.07.2018 09:39:24 UTC](https://forum.itvdn.com/t/var-let-const/2053/1 "2018-07-30T09:39:24Z")

</div>

Переменную в JS можно объявить, на сколько нам известно, тремя способами:

1) var.

2) let.

3) const.

С const всё вроде как ясно и так. Они являются аналогами const в том же C#.

Но что на счёт let и var? Чем они отличаются?

---

<div class="post-metadata">

**Author:** ![maxsaving](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/m/49beb7/32.png) [@maxsaving](https://forum.itvdn.com/u/maxsaving)\
**Post date:** [30.07.2018 10:42:52 UTC](https://forum.itvdn.com/t/var-let-const/2053/2 "2018-07-30T10:42:52Z")

</div>

var это вроде как старый вариант. Сейчас, в последних версиях JS (в частности в Visual Studio) var подчёркивается как нежелательное ключевое слово, и предлагает поменять на let или const.

Итак, отличия:

1. let переменную видно только в блоке { } где она объявлена

var переменная имеет глобальную облать видимости, и с ней можно взаимодействовать из других блоков программы

2. let переменная видна только после её объявления.

К переменной var можно обратиться и до её объявления

3. В циклах for :

let можно ипользовать неоднократно, при каждом перечислении:

```
for (let i=0;i<9;i ){
for (let i=12;i<100;i ){
//\*\*\*  
}
}
```

var можно объявлять в циклах только один раз:

```
for (var i=0;i<9;i ){
for (var j=12;j<100;j ){
//\*\*\*  
}
}
```

const по сути - это то же самое что и let, только константы нельзя изменять. По всем остальным признакам они повторяют const.
