我正在阅读一篇关于JavaScript中Tilde运算符的文章。我看到一个示例显示我们可以使用〜来搜索字符串,如下所示:
var str = 'posterous';
if ( str.search('t') >= 0 ) {
// character t found
}
else{
// not found
}
用〜:
var str = 'posterous';
if ( !~str.search('t') ) {
// character 't' not found branch
}
else{
// found branch
}
我的问题是它是如何运作的?
答案 0 :(得分:2)
Joe Zim's blog explains what it is
Tilde(〜)是一元运算符,它将表达式向右移动 对它执行这个小算法(其中N是表达式 波浪号右边):
-(N+1)
除0
以外的所有号码都被视为 truthy
String.indexOf
或String.search
会返回-1
,~-1
为0
falsey