Unlike strongly typed languages, JavaScript does not enforce a return type on a function. This means that different paths through a function can return different types of values, which can be very confusing to the user and significantly harder to maintain. == Noncompliant Code Example ---- function foo(a) { // Noncompliant if (a === 1) { return true; } return 3; } ---- == Compliant Solution ---- function foo(a) { if (a === 1) { return true; } return false; } ---- == Exceptions Functions returning ``++this++`` are ignored. ---- function foo() { // ... return this; } ---- Functions returning expressions having type ``++any++`` are ignored. ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] include::highlighting.adoc[] endif::env-github,rspecator-view[]