Expressions with arithmetic (``/, {empty}*, %, {plus}{plus}, --, -, -=, {empty}*=, /=, %=, +=, {plus}``), 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 * Expressions using the binary ``{plus}`` operator with at least one ``++String++`` operand are ignored because the ``{plus}`` operator will perform a concatenation in that case. * Comparisons where both operands are strings are ignored because a lexicographical comparison is performed in that case. ifdef::env-github,rspecator-view[] ''' == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]