2015-09-14 91 views
1

在平方括號和圓括號內使用平方括號和圓括號有什麼區別?例如:在三角形條件下使用平方括號和圓括號時,使用平方括號和圓括號之間的區別是什麼

平方:[ x == y ? 1 : 0 ]

輪:(x == y ? 1 : 0)

我知道[ ]用於得到一個陣列變量或從關聯數組的鍵。但是,它們通常與數組無關的事物一起使用。

例如這裏是一小塊一插件我寫的:

(x.nodeType == 3 ? textContent : innerHTML) 

同樣只能用方括號而不是圓的像上面。就好像第一個返回一些東西,第二個實際顯示它。

+4

'[...]'創建一個數組和'(...)'返回解析後的表達式。例如。 'var foo = [true? 1:2];'foo'中的結果具有數組'[1]'和'var foo =(true?1:2);'結果'foo'具有數字'1'。要使用什麼取決於您想要實現的內容或剩餘代碼的API /上下文。 –

+3

除了@FelixKling所說的之外,括號記法'[]'也可以用來訪問一個對象myObject [「myProperty」]的屬性或數組'myArray [1]'的索引。沒有更多的魔法。 – Jan

+2

需要更多的上下文來理解你爲什麼說只能用'[]'工作,否則問題根本不清楚 – charlietfl

回答

3

圓角括號用於評估特定表達(在此情況下一個三元條件),而平方那些用於創建一個數組,用於訪問的陣列的位置(例如,如果你有var a = [1, 2, 3];然後a[0]是1,[1]是2等),或用於訪問對象的屬性(如果你有var a = {name : "John", age : 25};然後a["age"]是25)

以此爲一個例子:

var b = [x == y ? 1 : 0] 

將指派b鍵具有或者1一個新的數組或0

var b = (x == y ? 1 : 0) 

將assing b爲1或0(取決於第x == y)的

希望很明顯

+2

*「或訪問數組的位置」*括號符號可用於訪問任何*對象屬性*不只是數組的屬性/元素。 –

+0

解釋了它。我真的不太確定,非常感謝! – Asperger

+0

是正確的@FelixKling –

相關問題