🐡

JSのconsole.logの思わぬ落とし穴にはまって苦しんだ話

2023/04/20に公開

結論

  • JSのconsole.logは参照渡し
  • 各時点の値を保持しているのではない
    • 最後に値が確定したらその値で上書きされる?

以下の記事が非常に参考になりました。本当に感謝しかないです。。。
https://qiita.com/POPOPON/items/edc7a522d2ee9a50cc3a

苦労(私)

https://twitter.com/Tebasaki_lab/status/1648970811389411328?s=20

let obj = {
  a: '1'
}
console.log(obj) // => {a: '2'}

obj.a = "2"
console.log(obj) // => {a: '2'}

あとがき

後でわかったのですが、関数の引数も参照渡しなんですね。値渡してると思ってめんどくさいことに。。。console.logも関数の引数だから?オブジェクトは基本参照渡しなんですかね?
https://zenn.dev/okina/articles/c2ecfbb1a23a79

関連ページ

https://zenn.dev/teba_eleven/articles/772c84a522c9c5
https://zenn.dev/teba_eleven/articles/b9adf9e2810954
https://zenn.dev/teba_eleven/articles/bc4e29c9ee6f14

Discussion

Hidden comment