2015-09-14 90 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 –

相关问题