JavaScript does not have an integer type, but it does have bitwise operators <<, >>, >>>, ~, &, |. These operators convert their operands from floating point values to integers and back, so they are not as efficient as in C or other languages. Further, they are rarely useful in browser applications, and the similarity to the logical operators can mask some programming errors.

Noncompliant Code Example

if (a & b) { ... } // Noncompliant; & used in error
var oppositeSigns = ((x ^ y) < 0); // Noncompliant; there's a clearer way to test for this

Compliant Solution

if (a && b) { ... }
var oppositeSigns = false;
if ( (x < 0 && y > 0) || (x > 0 && y < 0) ) {
  oppositeSigns = true;
}