これはWebページがどのようなものであるかの歴史的背景的なものもセットで覚えた方が良いでしょう。
JavaScriptがWEB業界でどのように扱われているのかわからない
WebページはHTMLとCSSによって構成されています。
HTML自体は文書構造を示し、表現出来る内容は大体WordやPDFと同レベルです。
凝ったデザインはCSSを使ってHTMLを修飾して実現しましょうという思想になっています。
リンクとフォームによるGET/POSTリクエストさえあれば、
世のほとんどのWebアプリを実現することが可能です。
アクセスした人を判断し、xxさんいらっしゃい等のデータを出し分けるために、
アクセス者にふさわしい動的に変化するHTMLを返すサーバを構築して実現します。
JavaScriptはページの再読込を挟まずに、HTMLを後から書き換えるために作られ、採用された言語です。
マイクロソフト社はJavaScriptでHTMLを書き換える一連の流れを指して、
動的にHTMLが変化するDHTMLと名付けていた頃もありました。
2003年にGoogleがGoogla Mapを発表してから、爆発的にJavaScriptブームが訪れ、
後付でWebサーバからデータを受け取りページの再読込を省略して画面を書き換える主砲が流行りました。
しかし、JavaScriptがデフォルトで用意しているXMLHttpRequestはめちゃくちゃ書きづらく、数多くのエンジニアを恐怖のどん底に叩き落としてきました。
また、動的なHTMLの書き換えに関してもブラウザ毎にサポートしている機能がまちまちで、
JavaScriptエンジニアはいたるところでAのブラウザとBのブラウザで動作を変えるif文をあちこちに挟む事になり、
何がしたいのかよく分からずバグだらけのWebサイトになってしまいました。
この現場に応える形で2006年に登場したのがjQueryです。
- Ajaxを簡単に発行出来る
- 簡単な命令文でDOMを操作出来る
- 豊富なクロスブラウザ対応、流行ってる全てのブラウザでも動作する
今2019年現在、IE11を含め多くのブラウザの足並みが整いましたので、
クロスブラウザで必須だったjQueryはその役目を終えようとしています。
まぁ、簡単に書けるという部分でjQueryはまだまだ人気ライブラリですけどね。
JavaScriptのライブラリであるJQueryが現在のWEB業界でどのような立ち位置にあるのかしりたいです。
DOM操作に関しては既にjQueryは不要になりつつあります。
移行先として用意されているJSフレームワーク(React, Vue.js, Angularなど)はどれもNode.jsの学習が半必須という事もあり、また過渡期特有のライブラリ戦争みたいになっていてまだ普及しているとは言い難いのが現状です。
しかし、アニメーションに関してはJSフレームワークでの実現が難しいという点から、
CSSアニメーションで実現できないフレームや時間単位で制御したいものはまだまだjQueryのお世話になる可能性はあります。
ブラウザ間も差がなくなりつつありJQueryでなくnativeコードで実装することも容易になってきているようですが、それでも使う理由は何でしょうか?
jQueryのメソッドチェーンはシンプルに記述できます。
また、エラーを出さずに緩やかに着地する挙動が好まれるシーンもあります。
(逆にエラーにならず、原因が分からずにハマる事も多々ありますが……)
jQueryは遅いと聞きますが、nativeで実装できることならnativeで実装するべきでしょうか?
実装する「べき」とまでは思いません。
手続き的にDOMを操作するならjQueryのメソッドチェーンはとても簡潔で読みやすいですね。
速度面も、結局DOMを触る箇所がクソ重く、ネイティブで書いたからといっても回避出来るわけではありません。
jQueryを既にそれなりに触れるなら、DOM操作を覚えるためにNativeの書き方を必死に覚えるより、
JSフレームワークの勉強に費やした方が得でしょう。
jQueryやネイティブのDOM操作が手続き型的なら、JSフレームワークのDOM操作は宣言的でバグが圧倒的に減ります。
まぁ、JavaScriptやNode.jsの知識がそれなりについてきて、
MDNのサイトをすんなり読めるようになってくれば、NativeでのDOM操作もすぐ分かるようになります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。