JavaScript





[-] 1. namespace メモ(2025-05-10)

[-] 1.1. ボヤキ

javascript の知識など10年も更新してない化石(兼、零細・末端w)プログラマが、 必要性に迫られて脳内知識をアップデート。

> javascript での名前衝突回避って、結局今はどうなってるんだっけ?

というのがそもそもの発端。

Vue.js で落ちこぼれかけ、別件の投票アプリで javascript の出番もあり、

> いったい、今ってどうモジュール化・名前衝突解決しているのだろう?

と思い、古い知識をアップデートする必要性に迫られた次第。

  • 名前空間を解決する方法として、過去、僕が採用していたのは
    var Namespace = {
      a: initial_value,
      f: function(){...},
      ...
    };
    という書き方。 Prototype.js を通じて知ったのだけど、これももう何年も更新されてないな。時代は変わるなぁ。 この方式の問題点は、インスタンス生成には使えないこと。
  • ググると(これも最近は死語になりつつあり、どうやら AI に聞くのが正解らしいけど、 google サーチも AI 出力を試験運用しているから(2025-05時点)、とりあえず良しとしたい)、 https://dev.mozilla.jp/2010/05/js-blockscope-and-namespace/ がよくまとまっていた。感謝します(が、これも 2019年で更新終了)。
  • https://stackoverflow.com/q/881515/921859 もわかりやすい。

[-] 2. ES6

[-] 2.1. <script>タグ内の let, const は window プロパティにはならない

ES6 勉強中の middle age が最近驚いたこと(2018/12/21)。

[-] 2.1.1. 事実

<script>
  var hello_var = 'HELLO-VAR';    // 'hello_var' in window => true
  let hello_let = 'HELLO-LET';    // 'hello_let' in window => false
</script>

[-] 2.1.2. 発端

ふと <script>タグ内の const 変数のスコープを知りたくてググッて

"variable_name" in window

が true ならグローバル、と言う記事を読んで const 変数に試してみたけどそうならない。

でアセったのがきっかけ。

[-] 2.1.3. const, let の var との違い(その1)

https://stackoverflow.com/questions/28776079/do-let-statements-create-properties-on-the-global-object

At the top level of programs and functions, let, unlike var, does not create a property on the global object.

なる一文が…。

[-] 2.1.4. 結論

<script>直下の let, const は グローバルかつ非window属性

[-] 2.2. Webアプリケーションフロントエンド年代記 - 2018年夏編

Webアプリケーションフロントエンド年代記 - 2018年夏編 が興味深い。

サーバ = RoR, クライアント90% = HTML, 10% = jQuery

…だった僕には、node や React 周辺のトレンドがさっぱり分からなかったので、 勉強になった。

[-] 3. O'Reilly JavaScript(第5版) メモ

JavaScript 本、以前読んだのは10年ほども前だったかな…。 この間、いつのまにか JavaScript は進化していた。 よく分からず prototype.js を使っていたっけ。

プロジェクトが落ち着いたので、第5版を読んでみた。その時のメモ。

[-] 3.1. GET/POST の「意味」

http なるプロトコルの話だけど:

server  = 'http://....'
server.get
server.post(data)

GETPOST
サーバ側の値更新 x o

ここでふと

関数:値更新無し
手続き:値更新あり

を思い出した。






Generated by juli 2.3.2