Javascript 陌生赋值构造

标签 javascript node.js

抱歉,基本问题。我在 javascript 中发现了以下构造,但我不熟悉它。你知道这是什么构造吗?

我已经更改了变量,但含义是一样的。

var pt = (
 5 in [1,2,3,5]?
 2:
 3 in [1,2,3]?
 1:
 7);

看起来它检查所有条件并根据条件采取行动,但是最后一步是没有条件的,像这样?

最佳答案

这使用了 ternary conditional operatorin 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/

相关文章:

javascript - NaN 问题 - 无法在 Jquery 中显示数字

node.js 段错误 :11

javascript - 如何查找页面外的元素

javascript - Google Maps API 信息窗口都具有相同的内容

javascript - 为什么我没有得到正确的时间?

javascript - Vue.js 在新窗口中打开链接

javascript - 快速路线不起作用?

node.js - Express 请求对象未正确报告 https

jquery - socket.on 调用其回调的次数过多

node.js - 我可以指示nightmare.js转到本地主机上的快速路由吗?