2013-09-07 3 views
2

Я читал о области видимости функции и объеме блока. И узнал, что Javascript имеет функцию.Язык с блочной областью?

Теперь, когда я думаю об этом, все языки, о которых я знаю, имеют функцию. Я действительно не знаю, какой язык имеет область охвата. Можете ли вы, ребята, указать мне на какой-то язык, имеющий область охвата?

Еще одно сомнение в том, что на языке с областью охвата блока, как бы получить доступ к индексному значению цикла for вне цикла? В чем преимущество обладания блоком?

Спасибо.

+3

C, C++, C#, VisualBasic.NET и многое другое есть блок сферы. – Oded

+1

Теперь у JavaScript есть область с использованием let, а не var. –

ответ

1

Алгол 60 был первым, чтобы использовать объем блока, затем многими как C, C++, C# ... и т.д.

Отъезд Block scope раздел этой страницы Википедии.

Преимущество наличия блока объема

Блоки главным образом используются для управления потока, например, с, если, в то время, и петли, и в этих случаях блокировать объем означает объем переменных зависит о структуре потока выполнения функции. Однако языки с областью блока обычно также допускают использование «голых» блоков , единственной целью которых является разрешение мелкозернистого управления переменной областью . Например, вспомогательная переменная может быть определена в блоке , а затем использована (например, добавлена ​​к переменной с областью функции) и , отбрасываемой при завершении блока, или цикл while может быть заключен в блок , который инициализирует используемые переменные внутри цикла, который должен быть инициализирован только .

-3

«В блоках JavaScript не имеет объема. Только функции имеют область видимости. У не использовать блоки, кроме как требуется по высказываниям соединения.»

Упомянутый Дуглас Crockford

+1

, который не отвечает на его вопрос – MJB

Смежные вопросы