在javascript中`~`意味着什么

时间:2011-11-19 02:56:47

标签: javascript node.js

我查看了express的代码,并看到此代码https://github.com/visionmedia/express/blob/master/lib/application.js#L490

if ('all' == envs || ~envs.indexOf(this.settings.env)) fn.call(this);

~

之前envs的含义

2 个答案:

答案 0 :(得分:9)

如果你想知道为什么在这种情况下使用它,它是一个简写,找出indexOf方法是否找到了什么。

indexOf在找不到内容时返回-1,并且> = 0时返回-1。所以当你做~~你得到0(一个假值),当你做任何其他事情时,你会得到一个真正的价值。

所以:

if( ~str.indexOf( "something" ) ) {
...
}

是一种较短的说法

if( str.indexOf( "something" ) !== -1 ) {
...
}

如果您想知道如何-1为0的NOT,那么请阅读here

答案 1 :(得分:8)