== Why is this an issue?

The assignment of default parameter values is generally intended to help the caller. But when a default assignment causes 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

[source,javascript]
----
var count = 0;

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

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



ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Remove the side effects from this default assignment of "xxx".


=== Highlighting

parameter and default assignment


'''
== Comments And Links
(visible only on this page)

=== on 1 Nov 2019, 17:35:25 Elena Vilchik wrote:
See \https://github.com/SonarSource/SonarJS/issues/1698

endif::env-github,rspecator-view[]
