首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >indexOf() +1 vs indexOf() != -1

indexOf() +1 vs indexOf() != -1
EN

Code Review用户
提问于 2012-07-23 18:54:19
回答 2查看 8.6K关注 0票数 5

在检查子字符串是否存在时,我一直在这样做:

代码语言:javascript
复制
var that = "ok hello cool";    
if( that.indexOf('hello') + 1 ) {
}

而不是:

代码语言:javascript
复制
if( that.indexOf('hello') != -1 ) {
}

我是忽略了什么,还是有理由不这么做。

更新:

是的,我确实不知道有一种更简单的方法:

代码语言:javascript
复制
if ( ~that.indexOf( 'hello' ) ) {

}

您可以在这里阅读~位运算符和其他奇异位运算符:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_运算符

EN

回答 2

Code Review用户

回答已采纳

发布于 2012-07-23 19:03:12

以下是最常见的方法:

代码语言:javascript
复制
if ( ~that.indexOf( 'hello' ) ) {
}

~运算符做了一些魔术,只转换-1为0,因此它是唯一的假值。

票数 12
EN

Code Review用户

发布于 2012-07-23 18:59:45

好吧,我相信第二个更明显的是发生了什么.

代码语言:javascript
复制
if( that.indexOf('hello') != -1 ) {
}

不过,这两个表达式都是有效的,而且完全没有问题。

票数 13
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/13941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档