JSLint не ожидает мои тильды - PullRequest
       15

JSLint не ожидает мои тильды

10 голосов
/ 28 февраля 2012

JSLint настаивает на том, что мое использование несколько экзотического тильды оператора в приведенном ниже примере является неожиданным.Что мне интересно, так это ограничение JSLint?или строгий режим?или что еще мне не хватает?

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

Кроме того, почему бы мне не использовать простой тильдный оператор вместо более сложного примера ниже?Наверняка должна быть веская причина, чтобы этого не делать?

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

1 Ответ

6 голосов
/ 28 февраля 2012

Из JSLint Docs :

Битовые операторы

JavaScript не имеет целочисленный тип, но у него есть побитовые операторы.Битовые операторы преобразуют свои операнды из чисел с плавающей запятой в целые и обратно, поэтому они не так эффективны, как в Си или других языках.Они редко полезны в браузерных приложениях.Сходство с логическими операторами может маскировать некоторые ошибки программирования.Битовая опция позволяет использовать следующие операторы: << >> >>> ~ & |.

Вы можете включить его в options

Cheers

...