47 lines
1013 B
Plaintext
Raw Permalink Normal View History

== Why is this an issue?
2021-04-28 16:49:39 +02:00
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
2021-04-28 16:49:39 +02:00
2022-02-04 17:28:24 +01:00
[source,javascript]
2021-04-28 16:49:39 +02:00
----
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[]