Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 方括号和圆括号中三元条件的区别_Javascript - Fatal编程技术网

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这就是原因。我有点困惑,所以感谢您的评论“或访问数组的位置”,括号表示法可以用于访问任何对象属性,而不仅仅是数组的属性/元素。这就解释了这一点。我不是很确定,所以非常感谢!此外,a
x==y?1:0
三元表达式可以缩短为
+(x==y)
,因为
1
是真实的,
0
是虚假的。不是很有用,但我觉得很酷。