javascript - ~[Array].indexOf(key) 是做什么的?

标签 javascript node.js express operators bit-manipulation

我正在使用和调整 MVC example包含在 Express.js 存储库中。

在其中一个模块中,有一个我不熟悉的 JavaScript 构造。目的是迭代对象上的键并跳过一些“保留”的键,但从 JavaScript Angular 来看,我不明白 波浪号 发生了什么。

for (var key in obj) {
    if (~['name', 'prefix', 'engine', 'before'].indexOf(key)) continue; 
}

我读到它是一个按位 NOT 运算符,但希望能以通俗易懂的方式解释它的含义以及它在这个特定示例中的作用。

最佳答案

如果未找到,

indexOf 返回-1~-10,即 false。所以整个事情的意思是:如果在数组中找到key,则继续。

关于javascript - ~[Array].indexOf(key) 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24479503/

相关文章:

javascript - 在 css 中混合百分比和 px 而不使用 calc()

javascript - JS 每 X 秒更新一次 Canvas 动画

node.js - 我可以限制 Node.js/express.js 中 TLS 消息的长度吗?

javascript - 我可以在 Node 6 中表示大整数,仅进行求幂而不具有依赖性吗?

node.js - Node Async/Await 不起作用,需要实现回调

angularjs - mongo/mongoose 查询查找删除空间的字段

javascript - 将主要 Typescript 代码及其依赖项合并到单个文件中

javascript - 在使用 BIND() 将自定义组件方法绑定(bind)到组件时,我们可以将第一个参数作为组件本身传递吗?

javascript - 如何在 JavaScript/Node 中计算 SHA256 哈希和 Base64 字符串编码

node.js - 如何在 Express 中通过一个 post 请求保存不同的对象?