見出し画像

【reversi.js】過去作の改造 2【開発記】

とある用途の為に過去に作った JSJavaScript 作品を改造するぽ🤤

→え?独自グローバル変数定義で `var foo = foo || {};` がいつの間に使われなくなったのん?の巻

#開発記 #JavaScript #グローバル変数 #undefined


目につく所から

それじゃ具体的に構造読み込んだり直したりしようかしら🤤

この1行目の定義、のっけから😑
当時色々調べて結局この書き方に落ち着いたんだけど、今どうなってるのかな、これグローバルに定義済か調べる式🤔

var なのは確かデバグの問題だったかな🤔
let でもできなくはないんだけど表示したウィンドウ(というかタブ)が生きてる内はグローバルに有るから再読み込みすると「再定義」になって弾かれるのでデバグがすっごいめんどくなるので var になったと記憶してる🙄

[JavaScript] グローバル変数の存在確認方法まとめ:typeofが無難
http://site.oukasei.com/?p=1258

JavaScriptのグローバル変数未定義エラーの回避方法
https://www.bugbugnow.net/2021/02/is-not-defined.html

………

………

………

どれもこれも「 undefined を判定して…」となっているけれど肝心な独自グローバル変数自体は殆どがなまで `var foo="foo";` とか `let foo="foo";` としか書いてない😞
有っても「 window オブジェクトを調べて」「 window とは限らないから即時関数で `return this` …」ばっかり🙄
この形の式var foo = foo || {};を導入した当時は割と簡単に検索で出てきたけれどこの初期化の方法は今は令和の時代使われなくなってしまったのかも…😞
より良い方法が有ればと思ったけど無いんじゃしょうがない…このままかな🤪

原理的には他と同じく undefined を判定して、なんだけど想定してる変数の中身がオブジェクト(というか連想配列)なので空でもオブジェクトが入っていれば論理和`||`の左が評価されて undefined や null なら右側の空オブジェクト`{}`が入る、 var なのでグローバルに再定義、という仕組みなんだけど…🤤
なんで、記事が出なくなったんだろ…手法としては残ってると思うんだけど…具体的な検索語がワカラン🙄


次回は

引き続き見て行くぽ😑
初っ端1行目でこれとは先が思いやられる…🙄

この記事が気に入ったらサポートをしてみませんか?