![見出し画像](https://assets.st-note.com/production/uploads/images/89612807/rectangle_large_type_2_636d39b57dce2412c71d3786f69821e1.png?width=1200)
【reversi.js】過去作の改造 2【開発記】
とある用途の為に過去に作った JS 作品を改造するぽ🤤
→え?独自グローバル変数定義で `var foo = foo || {};` がいつの間に使われなくなったのん?の巻
#開発記 #JavaScript #グローバル変数 #undefined
目につく所から
それじゃ具体的に構造読み込んだり直したりしようかしら🤤
![](https://assets.st-note.com/img/1666542846355-jsZy1PRRr6.jpg)
この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` …」ばっかり🙄
この形の式を導入した当時は割と簡単に検索で出てきたけれどこの初期化の方法は今は使われなくなってしまったのかも…😞
より良い方法が有ればと思ったけど無いんじゃしょうがない…このままかな🤪
原理的には他と同じく undefined を判定して、なんだけど想定してる変数の中身がオブジェクト(というか連想配列)なので空でもオブジェクトが入っていれば論理和の左が評価されて undefined や null なら右側の空オブジェクトが入る、 var なのでグローバルに再定義、という仕組みなんだけど…🤤
なんで、記事が出なくなったんだろ…手法としては残ってると思うんだけど…具体的な検索語がワカラン🙄
次回は
引き続き見て行くぽ😑
初っ端1行目でこれとは先が思いやられる…🙄