Javascript 方括号和圆括号中三元条件的区别
在三元条件中使用方括号和圆括号有什么区别?例如: 平方:Javascript 方括号和圆括号中三元条件的区别,javascript,Javascript,在三元条件中使用方括号和圆括号有什么区别?例如: 平方:[x==y?1:0] 四舍五入:(x==y?1:0) 我知道[]用于从关联数组获取数组变量或键。然而,它们通常与与数组无关的事物结合使用 例如,下面是我编写的一个插件的一小部分: (x.nodeType == 3 ? textContent : innerHTML) 同样的方法只适用于方括号,而不适用于上面的圆括号。就好像第一个返回了什么,第二个实际显示了它。圆括号用于计算某个表达式(在本例中为三元条件),而方括号用于创建数组,用于访问数
[x==y?1:0]
四舍五入:(x==y?1:0)
我知道[]
用于从关联数组获取数组变量或键。然而,它们通常与与数组无关的事物结合使用
例如,下面是我编写的一个插件的一小部分:
(x.nodeType == 3 ? textContent : innerHTML)
同样的方法只适用于方括号,而不适用于上面的圆括号。就好像第一个返回了什么,第二个实际显示了它。圆括号用于计算某个表达式(在本例中为三元条件),而方括号用于创建数组,用于访问数组的位置(例如,如果您有
var a=[1,2,3];
然后a[0]
为1,a[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)
将分配b为1或0(取决于x==y)
希望很清楚
[…]
创建一个数组并(…)
返回内部表达式解析为的内容。例如,var foo=[true?1:2]
导致foo
具有数组[1]
和var foo=(true?1:2)代码>导致foo
具有编号1
。使用什么取决于您想要实现什么或剩余代码的API/上下文。除了@FelixKling所说的以外,括号符号[]
还可以用于访问对象的属性myObject[“myProperty”]
或数组的索引myArray[1]
。并没有更多的魔力了。需要更多的上下文来理解为什么你们说某些东西只对[]
有效,否则问题目前还不清楚all@FelixKling这就是原因。我有点困惑,所以感谢您的评论“或访问数组的位置”,括号表示法可以用于访问任何对象属性,而不仅仅是数组的属性/元素。这就解释了这一点。我不是很确定,所以非常感谢!此外,ax==y?1:0
三元表达式可以缩短为+(x==y)
,因为1
是真实的,0
是虚假的。不是很有用,但我觉得很酷。