2012-09-28 64 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; 
} 

雖然,長方程執行操作S的基於一套標準的投入通常被分解成自己的功能:

充當:
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

@Alnitak是的,這是有道理的,雖然我沒有這樣想過。視覺手淫? – wwaawaw

相關問題