2017-01-20 5 views
1

являетсяшоу сигнальное Как я могу использовать^

err^d === null 

такой же, как

err === null && d === null 

оба выше состояния выдает тот же результат при применении.

но eslint всегда проявим

неожиданное использование '^' no-bitwise

+1

В чем вопрос? Если вы установили * eslint * для отображения предупреждений, когда используете побитовые операторы, он будет делать именно это - для получения дополнительных пояснений см. [Документацию] (http://eslint.org/docs/rules/no-bitwise). (Также я не уверен, что 'err^d' действительно правильный) – UnholySheep

ответ

3

ESLint по умолчанию запрещает операторам битовые, потому что они, как правило, ошибка (т.е. вы имели в виду && но напечатал &). Вы можете отключить это поведение, установив no-bitwise на allow. See the documentation.

С учетом этого это не будет делать то, что вы хотите. Побитовый оператор приводит в соответствие оба операнда с числами. Это означает, что null преобразуется в 0, равно false, undefined, пустой массив, массив, содержащий только 0 s, NaN, большинство (возможно, все) объектов. Вы действительно не тестируете null здесь. See the ECMAScript spec for demonstration of this.

+0

поэтому' err^d' преобразуется в '0', и я тестирую' 0 === null', который возвращает 'false' –