抱歉,基本问题。我在 javascript 中发现了以下构造,但我不熟悉它。你知道这是什么构造吗?
我已经更改了变量,但含义是一样的。
var pt = (
5 in [1,2,3,5]?
2:
3 in [1,2,3]?
1:
7);
看起来它检查所有条件并根据条件采取行动,但是最后一步是没有条件的,像这样?
最佳答案
这使用了 ternary conditional operator和 in operator .可以这样写:
var pt;
if (5 in [1,2,3,5]) { // is there an element with index 5 ?
pt = 2;
} else if (3 in [1,2,3]) {
pt = 1;
} else {
pt = 7;
}
但这看起来更像是一个谜题,而不是一个合法的代码。这看起来特别像一个陷阱:
5 in [1,2,3,5]
大多数编码人员不会接受它的本质:测试 5 作为键 是否存在(参见 in)。所以它是 false
(但 3 in [1,2,3,5]
将是 true
)。
整体相当于
var pt = 7;
关于Javascript 陌生赋值构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19879508/