Как правило, используется в управляющих операторах (for, while и т.п.).
Блок не задает область видимости
Это важная особенность языка javascript, по сравнению с C, Java и многими другими языками.
Переменные, объявленные внутри блока, видны в содержащей их функции или во всем скрипте, если такой функции нет.
Изменение переменной внутри блока также видно за его пределами.
Поэтому, хотя отдельные блоки и являются корректными с точки зрения языка, но в javascript их никто не использует.
Пример выводит 2, так как вызов var x
внутри блока использует переменную x
, объявленную до блока.
В C или Java этот пример вывел бы 1.