The assignment of default parameter values is generally intended to help the caller. But when a default assignment causes the side effects, the caller may not be aware of the extra changes or may not fully understand their implications. I.e. default assignments with side effects may end up hurting the caller, and for that reason, they should be avoided.

## Noncompliant Code Example

    var count = 0;

    function go(i = count++) {  // Noncompliant
      console.log(i);
    }

    go();  // outputs 0
    go(7); // outputs 7
    go();  // outputs 1