JavaScript

描主宇田川浩行K#F85E
上描き希哲13年(2019年)
08月08日 18:41
下描き希哲6年(2012年)
06月18日 06:14
利承
ライセンス
希哲館普通利承(KULクール

JavaScript(ジャヴァスクリプト)は,スクリプト言語の一つである。

1995年にネットスケープで開発され,ウェブ ブラウザーNetscape Navigator で実装された。現在に至るまで,ウェブ ブラウザー上で実行できるスクリプト言語としての性格が強い。

Java を意識して作られたため「JavaScript」という名称になっているが,直接の関係はなくまったく別の言語である。

マイクロソフトも追随し JScript を開発した。

標準化

Ecma International(旧 ECMA)によって標準化されており,この仕様は ECMAScript と呼ばれている。

ECMAScript は JavaScript 実装の標準化基準として広く採用されている(2009年時点では ECMA-262 3rd edition の採用が一般的)。

一覧

=}{*}

C++ から を作って,JavaScript下装書CSS)に足を取られたのは,今思えば良い経験だった。前縁フロントエンド)は適当でも何とかなるだろう,という意識が変わった。

=}{*}

JavaScriptconst,理解はしていてもいざ使うとちょっと不安になる。C++ なんかでも,指示体ポインター)の変更は不可だが,指示先の客体オブジェクト)は変更可能,ということはありうるし,JS は基本が参照なので,考え方次第ではあるのだろうが……。

=}{*}

私の場合,C++ 互換),νSJavaScript 互換),Bash スクリプトEmacs Lisp が今のところそれに当たる。どれも捨てられないし,これ以上分散させたくない。

=}{*}

きっちりしたことは C++(系言語)で書いて,欲しい駒手(コマンド)があったら適当にシェルスクリプトで作ってみて,選り手(エディタ)の機能は Emacs Lisp で書いて,派手なことは JavaScript(系言語)でやる。というのが今は理想形かもしれない。

=}{*}

C++, シェル(Bash)スクリプト, Emacs Lisp, JavaScript が私の中で四大論組言語になってるな。というかこの辺極めると大抵のことは自分で何とかなる。

=}{*}

独自のドラッグイメージは,昔からある典型的な JS のギミックで別に技術的に難しいことはない。ただ,窓(ウィンドウ)枠を越えてドラッグしているように見せるのが意外に難しかった。windowdragenter, dragleave あたりを使えば何とかなるだろうと思っていたが,DOM 要素発泡バブリング)があるので厳密に出入りが把捉出来ない。

=}{*}

先日,論組プログラミング)におけるイベントを「事象」と訳したが,JavaScript における「イベントターゲット」ってどういうニュアンスなんだろう。最初,事象伝播の「ターゲットフェーズ」のイメージで「事象目標」と訳したが,使ってて微妙に違和感がある。

=}{*}

最初はちょっとした JavaScript 交度(コード)の問題かと思ったのだが,そもそも Ctrl+A で駄目ってことは,ブラウザとしてそういう実装なのではという疑惑が……。

=}{*}

JavaScript にある setTimeout()setInterval(),なぜ第二引数を時間にしたのか謎だ。明らかに読みにくい。というわけで,νS@dly()@itv() では第一引数に時間を指定するようにした。例:@dly( 1000, () => @log( '1秒後のログ出力' ) );

=}{*}

=}{*}

さっきも,Babel引装インストール)しようとしたら,node 絡みでハマって,一人でブチ切れてた。大体,「JS の変換駒手コマンド)が欲しい」というだけの素粒子よりも単純な要求のために,あれ入れてこれ入れて,設定書いて,作法に従って,その時点が何が「モダン」なんだかさっぱり分からない。むしろ一周まわって原始時代か!

=}{*}

ところで,JavaScript事象イベント)伝播には探索(キャプチャリング)過程発泡(バブリング)過程という謎の仕様があるが,これは昔の NetscapeIE実装を統合したものらしい。今知った。

=}{*}

これ自体は,ある程度経験のある論組屋プログラマー)なら割と思いつくと思うのだが,難しかったのは,備立子(ビルダー)として自然で直感的な「名前」だ。というのも,JavaScript において構築子客体(オブジェクト)の合い所アイデンティティ)でもあるので,new foo が foo の個体インスタンス)を返さないと例えば new foo instanceof foo が成立しないわけだ。これをどう整合的に表現するか。

=}{*}

JavaScript に詳しい人なら気付いたかもしれないが,foo.bld() における備立子(ビルダー)bld() は,foo() とは区別されつつ foo であるかのように振る舞う構築子コンストラクター)だ。これは,foo() を窓口のように使い,実際の客体(オブジェクト)構築ロジックを foo.bld() に凝集させることを可能にする。

=}{*}

まずは,構築子コンストラクター)の一種として「備立子」(ビルダー)というものを考えた。JavaScript のようなプロトタイプベース言語で,例えば foo.bld() が構築子として存在する時,これを客体オブジェクト)foo の備立子という。

=}{*}

ただ,JavaScript 改良言語 νS(ニューズ)とライブラリ Aejs(イージス)はここ一週間で劇的に発展した。これがもっと早くデルンデライトに反映してくれれば良かったのだが……。

=}{*}

これまでの作業と少し質が違うな,と感じるのは,HTMLCSSJavaScript も,整合性を保証してくれないからだな……。PostgreSQL の厳密性にいかに助けられていたか。

=}{*}

渡換(トランスコンパイラ)という考え方は昔からあるが(C++ も初期はそうやって実装されていた),やっぱり舞覧(ブラウザ)さえあれば動く JavaScript の存在は大きい。

=}{*}

しかし,iffy()JavaScript に導入しようと思ったら,評価の関係で iffy を三項演算子の前置キーワードにするくらいしか無いな。エルビス演算子論理演算子で間に合うし。

=}{*}

EmacsJavaScript 拡張言語 νS(ニューズ)用の模動(モード) vs-mode を追加していた。デルンフロントエンドAejs(イージス)という独自の技術体系で固めていたのだった……。

12
出力論組プログラム虎哲*イチ 1.01
制作・運営:希哲社
© K1-13 (2007-2019) KiTetuSha