JavaScript / ECMAScriptについて。
Webアプリケーションでは,基本的にサーバでページを生成するが,JavaScriptをうまく活用すると,サーバへのアクセスを減らしつつ,利用者にとっての操作性を上げることができる。
null
, undefined
だけではない。
Promise
は非同期に特化した仕組み。
JavaScript は, ES5 (2009年; ISO/IEC 16262:2011) までと, ECMAScript 2015 (ES6; 2015年) 以降とでまったく異なります。
古くは, ECMAScript 3rd edition (1999年12月; 次の 4th は結局まとまらなかった) の頃は, ほとんどオモチャレベルだった。それが ES2015 以降、本物のプログラミング言語へと進化を続けています。
各エディションの仕様書はここにある; Standard ECMA-262
Webブラウザやサーバ環境, transcompiler での実装状況は、次のページで分かる; ECMAScript 2016+ compatibility table
ECMAScript 2015 (ES6) は、Konqueror 4.14, IE 11 がまるっきり実装できていない。トランスコンパイラ Babel での変換も、確実にカバーされるわけではない。しかし、もはや、これらはターゲットにしなくてもよい。
2020年4月現在, ECMAScript 2017 (ES8) ぐらいまでは、問題なくどこでも使える. Babel は、逆に新機能に追いついていないようで、そろそろ役割を終えた印象。
Front-end に React, バックエンドに Express.js (Node.js上のフレームワーク) を使ったサンプル. ソースコードはこちら; netsphere / react-by-examples · GitLab
第1回: Create React App テンプレート, JSX
第2回: React without Redux - 入力データを表示につなげる
第4回: Express + Sequelize による APIサーバ
Express は, Sinatra に似た, Node.js 上で動くWebアプリケーションワークフレーム. Sequelize は ActiveRecord (Ruby on Rails) の JavaScript 版.
第5回: 多対多relationship, DBマイグレイション, Unicode文字列の扱い
Relation (関係) と relationship (リレイションシップ) は別の概念。前者は実装としてはテーブルのこと。
第6回: 認証 (OpenID Connect)
class
' を使わずにクラスを作り、プロトタイプチェインで継承を実現。