JavaScript入門 知っているとちょっとだけ幸せになるかもしれない 代入演算子の戻り値

クイズです。以下のコンソールログは何を出力するでしょうか。

let hoge;
console.log(hoge = 'abc');

正解は「abc」です。

代入演算子を使った場合も、実は戻り値があります。

戻り値は右辺の値です。

これを踏まえて以下のコンソールログが何を出力するかを考えてみましょう!

const myObj = {};
myObj[myObj['hoge'] = 0] = 'hoge';

console.log(myObj);

正解は以下です!

{
  0: "hoge",
  hoge: 0
}

myObj['hoge’] = 0 の部分により、myObj は {hoge: 0} となります。

そしてこの代入演算子の戻り値は 0 なので、myObj[0] = 'hoge’ となり、{hoge: 0, 0: 'hoge’}となります。