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;
}