13.5Variables / No Chain Assignment

変数代入の連鎖はしない

変数代入を連鎖させないでください。暗黙的なグローバル変数が作成される原因となります。

`let a = b = c = 1;` というコードは、`let a = (b = (c = 1));` と解釈されます。`let` キーワードは `a` にしか適用されず、`b` と `c` は宣言なしで代入されるため、暗黙のグローバル変数になってしまいます。これは厳格モード (`'use strict'`) ではエラーになりますが、そうでない場合は気づきにくいバグの原因となります。

❌ Bad
// bad
(function example() {
  // JavaScript interprets this as let a = ( b = ( c = 1 ) );
  // The let keyword only applies to variable a; b and c become global variables.
  let a = b = c = 1;
}());
✅ Good
// good
(function example() {
  let a = 1;
  let b = a;
  let c = a;
}());