2012-09-28 6 views
1

Вам разрешается использовать отдельно стоящие блоки, как это ...Какова точка свободных стоячих блоков, если нет области блока?

var something = 1; 
{ 
    var something = 2; 
    print("Inside: " + something); 
} 
print("Outside: " + something); 

Это от: http://eloquentjavascript.net/chapter3.html#p3c7ae609

Но какой смысл иметь блоки, как это? Какой цели это служит?

+0

Опа, я продолжал читать, и: _ "На самом деле, хотя блоки, как это разрешено, они совершенно бессмысленны ». Угадаю, я проголосую, чтобы удалить вопрос? – wwaawaw

+0

Возможно также. Это не то, что мы могли бы ответить в любом случае и, безусловно, под «неконструктивным» зонтиком. – Oded

ответ

3

В ES6 там будет блок контекстные переменные, объявленные с let, при котором свободно стоящие блоки не будут больше бессмысленно.

+0

Также смотрите: http://stackoverflow.com/a/12646143/1597180 – wwaawaw

0

Вы ответили на свой вопрос. Из статьи, связанной в OP:

Фактически, хотя блоки, подобные этому, разрешены, они полностью бессмысленно.

3

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

Одна линия:
//long equations are hard to read 
foo = bar * baz + fizz - buzz; 
Блок:
{ 
    //this groups relevant information into a descrete section 
    foo = bar; 
    foo *= baz; 
    foo += fizz; 
    foo -= buzz; 
} 

Хотя длинные уравнения, которые выполняют операции ы на основе стандартного набора входных данных, как правило, разбиты на их собственную функцию:

Как Функция:
function qux(bar, baz, fizz, buzz) { 
    var ret; 
    ret = bar; 
    ret *= baz; 
    ret += fizz; 
    ret -= buzz; 
    return ret; 
} 

foo = qux(bar, baz, fizz, buzz); 
+0

Принял это, но проверьте @ Alnitak's. – wwaawaw

+1

странно, я бы никогда не подумал использовать блок так, как вы делали в своем примере, потому что фигурные скобки не добавляют ничего полезного. Это было бы так же хорошо сделано с четырьмя отдельными строками с некоторым пробелом (и, возможно, комментарием), отделяющим его от предыдущего кода. – Alnitak

+0

@ Алнитак, да, это имеет смысл, хотя я так и не подумал об этом. Визуальная мастурбация? – wwaawaw