我正在使用和调整Express.js存储库中包含的MVC example。
在其中一个模块中,有一个我不熟悉的JavaScript构造。目的是迭代对象上的键并跳过一些&#34;保留&#34;,但我不明白 tilde <正在发生什么/ strong>从JavaScript的角度来看。
for (var key in obj) {
if (~['name', 'prefix', 'engine', 'before'].indexOf(key)) continue;
}
我正在阅读它是一个Bitwise NOT运算符,但是会很感激外行人对这意味着什么的解释,以及它在这方面所做的事情。特别的例子。
答案 0 :(得分:0)
indexOf
会返回-1
。 ~-1
为0
,即false
。所以整个过程意味着:如果在数组中找到key
,请继续。