Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Вариация по теме:
var numbers = [3, 5, 8, 11, 23, 7];
if ( ~numbers.indexOf(1) ) {
// ...
}За что минусуют? Вполне читаемый вариант. Главное, чтобы в проекте везде использовался один способ.
За то, что это использование оператора не по назначению. Ничем не лучше
if (numbers.indexOf(x) + 1) {
//...
}Писать что угодно, лишь бы не очевидный numbers.indexOf(x) > -1? Такая логика что ли?
~arr.indexOf(x) можно, а ~(тут_какое-то_очень_сложное_условие_которое_может_вернуть_-1) — нельзя), то это не должно привести к ухудшению читаемости.

Ухудшения читаемости не происходит. "Программисты", не знакомые с побитовыми операциями мне не друзья.
Ясно, понятно.
"Знаком с побитовыми операциями" !== "умеет читать побитовые операции быстро".
Эй, ну зачем вы так парня минусует, ну горяч, категоричен, бывает. Несколько лет назад тоже иногда так писал, а потом устал и начал более выразительно свою мысль доносить.
JavaScript: includes vs indexOf