Expressions with arithmetic (/, *, %, ++, --, -, -=, *=, /=, %=, +=, +), unary (-), or comparison operators (>, <, >=, <=) where one, or both, of the operands is a String, Boolean or Date value rely on implicit conversions. Both the maintainability and reliability levels of such a piece of code are questionable.

Noncompliant Code Example

str = "80";
quarter = str / 4; // Noncompliant

if (str < 10) { // Noncompliant
   // ...
}

Compliant Solution

str = "80";
parsedStr = parseInt(str);
quarter = parsedStr / 4;

if (parsedStr < 10) {
  // ...
}

Exceptions