Chaining the assignment of variables can lead to unexpected results and be difficult to read.
(function() { const foo = bar = 0; // Did you mean `foo = bar == 0`? bar = 1; // This will not fail since `bar` is not constant. })(); console.log(bar); // This will output 1 since `bar` is not scoped.
This rule disallows using multiple assignments within a single statement.
Examples of incorrect code for this rule:
/*eslint no-multi-assign: "error"*/ var a = b = c = 5; const foo = bar = "baz"; let a = b = c;
Examples of correct code for this rule:
/*eslint no-multi-assign: "error"*/ var a = 5; var b = 5; var c = 5; const foo = "baz"; const bar = "baz"; let a = c; let b = c;
This rule was introduced in ESLint 3.14.0.
© JS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-multi-assign