这将在以后需要:elementStr = 'hello'
.
所以我正在开发一个 javascript 应用程序。在我的一个函数中,我有以下 if 语句:
if (elementStr.indexOf('#') !== 0) {
//true
}
但我不喜欢!==
它对我来说不好看的部分。所以我尝试了这个:
if (!elementStr.indexOf('#')) {
//false
}
但 indexOf() 不会返回未定义但它总是返回一个数字。因此,第一个 if 语句返回 true,因为elementStr
字符串的第一个位置没有“#”。但是第二个 if 语句返回 false,因为 indexOf 返回 -1 并且这不是“未定义”,但我们当然希望它像第一个示例一样返回 true。因为我们不想改变声明,我们只是想让它看起来更好。所以偶然我这样做了:
if (!~elementStr.indexOf('#')) {
//true
}
你猜怎么着,它奏效了。我试图找到关于那个标志的东西,它在 javascript 中的作用。但我什么也找不到。我正在玩它,我得到了以下结果:
if (!~~elementStr.indexOf('#')) {
//false
}
if (!~~~elementStr.indexOf('#')) {
//true
}
您可以继续添加〜,并且语句布尔值将一直更改。
现在有人可以解释一下它在这个例子中的作用,如果我可以安全地使用那个标志吗?