JSLint不期待我的波浪号

JSLint doesn’t expect my tildes

本文关键字:我的 期待 JSLint      更新时间:2023-09-26

JSLint坚持认为,我在下面的示例中使用了有点奇怪的波浪号运算符是出乎意料的。我想知道的是,这是否是JSLint的限制?还是严格模式?或者我还缺少什么?

(function () {
    'use strict';
    if (~'foo'.indexOf('bar')) {
        return 'wild accusations';
    }
}());

此外,为什么我不应该使用外观简单的波浪号运算符,而不是下面更复杂的示例?肯定有充分的理由不这样做吧?

if ('foo'.indexOf('bar') >= 0) { … }

来自JSLint文档:

位运算符

JavaScript没有整数类型,但它有按位运算符。按位运算符将操作数从浮点转换为整数,然后再转换回来,因此它们的效率不如C或其他语言。它们在浏览器应用程序中很少有用。与逻辑运算符的相似性可以掩盖一些编程错误。按位选项允许使用以下运算符:<lt;>>>>~&|。

您可以在选项下启用它

干杯