org.sonar.l10n.javascript.rules.javascript.S3516.html Maven / Gradle / Ivy
Why is this an issue?
When a function has multiple return
statements and returns the same value in more than one of them, it can lead to several potential
problems:
- It can make the code more difficult to understand and maintain, as the reader may be unsure why the same value is being returned multiple
times. This can introduce ambiguity and increase the chances of misunderstanding the function’s intent.
- The use of multiple return statements with the same value might lead someone to assume that each return corresponds to a distinct case or
outcome. However, if they all return the same value, it can be misleading and may indicate an oversight or mistake in the code.
- When the function needs to be modified or extended in the future, having multiple identical return statements can make it harder to implement
changes correctly across all occurrences. This can introduce bugs and inconsistencies in the codebase.
- Code readability is crucial for maintainability and collaboration. Having repetitive return statements can lead to unnecessary code
duplication, which should be avoided in favor of creating modular and clean code.
This rule raises an issue when a function contains several return
statements that all return the same value.
function f(a, g) { // Noncompliant: 'f' returns 'b' on two different return statements
const b = 42;
if (a) {
g(a);
return b;
}
return b;
}
To address this, you should refactor the function to use a single return statement with a variable storing the value to be returned. This way, the
code becomes more concise, easier to understand, and reduces the likelihood of introducing errors when making changes in the future. By using a single
return point, you can also enforce consistency and prevent unexpected return values.
function f(a, g) {
const b = 42;
if (a) {
g(a);
}
return b;
}
Resources
Documentation
- MDN web docs -
return
- MDN web docs - Function return values