質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.59%

JavaScriptでのJQueryの取扱について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 966

score 42

JavaScriptの勉強をしているのですが、JavaScriptがWEB業界でどのように扱われているのかわからないので質問を書きました。
またJQueryの必要性についての質問は正誤ではなく意見を聞きたいので意見を教えていただければ幸いです。

質問 1

JavaScriptのライブラリであるJQueryが現在のWEB業界(可動しているシステムなど)でどのような立ち位置にあるのかしりたいです。
例えば、「アニメーション全般に利用されている」や「DOM操作に利用されている」などです。

質問 2

ブラウザ間も差がなくなりつつありJQueryでなくnativeコードで実装することも容易になってきているようですが、それでも使う理由は何でしょうか?

フロントエンドの開発環境はめまぐるしく進化していて、最近のブラウザでは十分な質、量のDOM/BOM APIが実装されています。もうDOM操作やイベント処理のためにjQueryを覚える必要はありません。また、ReactやAngularそしてVueなどのフロントエンドライブラリの流行により、DOMを直接操作することはアンチパターンとなりました。jQueryはそれほど重要ではなくなったのです。このプロジェクトは、jQueryでの書き方の代わりとなるネイティブでの書き方(IE10以上)をまとめます。
引用元 You Don't Need jQuery

質問 3

JQueryは遅いと聞きますが、nativeで実装できることならnativeで実装するべきでしょうか?
基本的なことであればnativeコードでも十分かけるように思えます
書き方比較

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2019/01/29 13:46

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 2

+4

JavaScriptのライブラリであるJQueryが現在のWEB業界(可動しているシステムなど)でどのような立ち位置にあるのかしりたいです。

「ちょっとしたことをやるのには便利なライブラリ」程度の位置づけです。

ブラウザ間も差がなくなりつつありJQueryでなくnativeコードで実装することも容易になってきているようですが、それでも使う理由は何でしょうか?

たとえばWordPressのような、「基本骨格がJavaScript外で出来上がっている仕組み」にちょっとしたアコーディオンとかウィジェットを足すような場合、jQueryでやるのが適任、ということもあります。また、jQueryには多様なプラグインがありますので、「それらを使いたい」となればjQueryが必要となります。

JQueryは遅いと聞きますが、nativeで実装できることならnativeで実装するべきでしょうか?

個人的には、「もともとjQueryが入っていて、それを消すことも考えられない環境」あるいは「特定のjQueryプラグインを使いたい」というような場面であればjQueryを使って問題ないかな、という感覚です。

アニメーションなどは1フレームの描画に間に合えば全く問題ないし、クリックイベントも数十ミリ秒遅れたところで人間が知覚できるものではないので、もはやjQueryで組むのは煩雑すぎる巨大なシステムを組み立てる場合でもなければ、「jQueryの遅さ」が問題になる例は限られると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+1

これは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操作もすぐ分かるようになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る