JavaScriptライブラリってそもそもなにが書いてあるものなのでしょうか?

このQ&Aのポイント
  • JavaScriptライブラリは、再利用可能なJavaScriptのコードの集まりであり、よく使われる機能や操作を簡単に実現するための便利なツールです。
  • 具体的には、DOM要素の選択や操作、イベントの処理、アニメーションの制御など、ウェブ開発でよく必要となる機能が含まれています。
  • JavaScriptライブラリは、開発者が自分でコードを書く手間を省くことができるため、効率的にウェブアプリケーションを開発することができます。
回答を見る
  • ベストアンサー

JavaScriptライブラリってそもそも・・・

私はweb制作をはじめて3年たらずのwebデザイナーです。 プログラムはまったくと言っていいほど書けないので、アニメーションなどを実装したいときはwebで拾った著作権的に大丈夫なものを使いまわしています。 ほとんどjqueryライブラリを使ったものです。 最近はそのソースも少しは読めるようになり、少し手を加えられるようになりました。 そこで、かなり根本的な疑問がわいてきたのです。 ◆JavaScriptライブラリってそもそもなにが書いてあるものなのでしょうか? ※JavaScriptライブラリとはで調べたのですが、難しい言葉が多くて・・・ (jqueryとは具体的にどんなものが書いてあるものなのか。) ◆jqueryのアドオンとかjqueryのプラグインとか書いてあるのをよく見かけますが、これはなんのでしょうか?アドオンとプラグインは違うものなのでしょうか? ◆jqueryを読み込んで実行するためのスクリプトをソースに追加すれば意図した動きになりますよね。(アコーディオンメニューなど) ↓こういうもの=========== <script type="text/javascript"> $(function(){ // ここにコードを書いていく。 }); </script> これは「jqueryライブラリを使用して作ったプログラム」という言い方であっているのでしょうか? それともこのソースに追加するスクリプトのことをアドオンというのでしょうか? 無知で恥ずかしいのですが、この辺のことをきっちり理解できれば、もう少し自分のできる範囲が広がるのではないかと思い、質問しました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

> ◆JavaScriptライブラリってそもそもなにが書いてあるものなのでしょうか? ライブラリの中身見てみれば分かりますが JavaScriptが書かれています。 その意味では、ただのJavaScriptプログラムなのですが、 他のプログラムに使ってもらう為に機能をひとまとめにしたプログラムは 特にライブラリと呼ばれます。 jQueryであれば、あなたが質問文中でも使用している $関数の実装などが書かれています。 具体的に何を書いてあるか知りたければ例えば以下が参考になります。 (ちょっと古いですが。) 特集:jquery.jsを読み解く|gihyo.jp … 技術評論社 http://gihyo.jp/dev/feature/01/jquery jQueryはJavaScriptで書かれているので、 jQueryを使って実現できる機能は 別にjQueryを使わなくても実現可能です。 ただし、jQueryを使わない場合は、jQueryの中に書かれていたことも 自力で書かなければいけませんからその分面倒になります。

sanaeeeee
質問者

お礼

最後の文章、とてもわかりやすかったです!ありがとうございました。 納得しました。

その他の回答 (2)

回答No.3

よく使う機能をまとめたものがライブラリです。

sanaeeeee
質問者

お礼

ご回答ありがとうございました。

  • noranuko
  • ベストアンサー率46% (620/1332)
回答No.1

javascriptに限らず、プログラム言語はいくつかの階層に分かれています。 1.言語が備えた機能  例えばjavascriptが標準で持っている命令や関数です。  よく使われるのだとalert()とかlocation.hrefとか。 2.言語の機能拡張  1では不十分だったり、あると便利な機能を追加するための拡張です。  これを一般にライブラリといいます。  (1にしてもコア+ライブラリで構成されている場合がほとんどですけど) jQueryは基本的にこの階層のソフトです。  中身は何かと言うと、やっぱり命令や関数が書いてあります。    ・プラグイン/アドオン   こういう言い方ってあまり他の言語では言わない気がしますが、   基本的にはこの階層と同じです。   言語の拡張機能って、1の標準機能だけでできているわけではなく、   他の拡張機能を利用して作られていたりします。   つまりjQueryのプラグインとかアドオンとかいわれるものは、   jQueryの機能を利用して作られた拡張機能、ということです。 3.実際に動作させるプログラム  実際にブラウザなりOSなりが動作させるためのプログラムです。  ここでは1の標準的な機能に加え2を追加でよみこめば2の機能も利用して  プログラムすることができます。 Javasriptの例で具体的に説明すると、 <script type="text/javascript"> $(function(){ // ここにコードを書いていく。 }); </script> だけだとは1のJavascriptの標準機能でしかプログラムを書くことは出来ません。 単なるJavascriptプログラムです。 jQueryの機能を使ってプログラムを書くには、 <!--jQueryの読み込み--> script src=jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ // ここにコードを書いていく。 }); </script> というようにjQueryのファイルを読み込んでやる必要があります。 (他の言語でも"import hogehgoe"とか"include stadio.h"みたいに似たようなことします) このように書いた上でjQueryの機能を使ってプログラムすれば、 「jQueryを利用して作成したプログラム」です。 で、jQueryのアドオン/プラグインの場合も <!--jQueryの読み込み--> script src=jquery-1.7.2.min.js" type="text/javascript"></script> <!--jQueryプラグインjQplotの読み込み--> <script src="jquery.jqplot.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ // ここにコードを書いていく。 }); </script> というようにファイルを読み込ませてやることで機能を使えるようになります。 ただjQueryプラグインはjQueryの機能を利用しているので、 <!--jQueryプラグインjQplotの読み込み--> <script src="jquery.jqplot.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ // ここにコードを書いていく。 }); </script> このようにjQueryを読み込むのを忘れると動作しません。

sanaeeeee
質問者

お礼

詳しくご回答いただきありがとうございました!

関連するQ&A

  • javascriptライブラリの使い方

    aa.js bb.js cc.js の3つのjavascriptを使ったサイトを作成中です。 ヘッダーに <script src="aa.js" type="text/javascript"></script> <script src="bb.js" type="text/javascript"></script> <script src="cc.js" type="text/javascript"></script> と記載し、「aa.js bb.js cc.js 使う前提のスクリプト」をサイト上に記載しているのですが、aa.js bb.js cc.js のそれぞれが重いため、サイト記載のスクリプトがaa.js、bb.js、cc.jsより先に読み込まれてしまい、思ったような表示が出来ません。 (cc.jsが読み込まれないままの状態でサイトのスクリプトを読み終わってしまう) そこで調べてみると、下記のようなライブラリを発見しました。 http://notnil-creative.com/blog/archives/1361 このライブラリ(script.js)を使うと、通常は以下のように書くJavascriptの読み込みが、 <script src="jquery.js"></script> <script src="my-jquery-plugin.js"></script> <script src="my-app-that-uses-plugin.js"></script> 下記のように書くことができるそうです。 $script('jquery.js', function () { $script('my-jquery-plugin.js', function () { $script('my-app-that-uses-plugin.js') }) }) この書き方で、ページのレンダリングを阻害せず、非同期にJavascriptを読み込むことができ、なおかつ「jQueryが読み込まれてからjQueryプラグインを読み込み、そのあとウェブサイト用のスクリプトを読み込む」というような依存関係のある複数のJavascriptファイルの読み込みにも対応できちゃいます。 という優れものであり、私の要求にぴったりと思いました。 早速、http://notnil-creative.com/blog/archives/1361のページからscript.jsをダウンロードしたのですが、使い方がわかりません。 例ではヘッダーに $script('jquery.js', function () { $script('my-jquery-plugin.js', function () { $script('my-app-that-uses-plugin.js') }) }) と記載すればOKと書いてあります。 ただ、この記入方法で動くようにするためには、$scriptがscript.jsに連動していることを記載すべき だと思いますが、javascriptでそのような例を見たことがなく困惑しています。 このスクリプトの使い方(ヘッダーの記入方法)について、ご教授頂けませんでしょうか? 宜しくお願い致します。

  • javascriptライブラリについて

    知り合いから、javascriptのライブラリjQueryって結局何? と質問されました。 jQueryがライブラリと言う言葉は知っているようなのですが、 「子ノードの追加等の命令が、jQueryの関数で定義されていて、jQueryで定義された関数を呼び出すことで、いつもより短い命令で子ノードの追加ができる、関数とかが集まったもの。」 と説明したのですが、いまいちのようでした。 もう少し、ライブラリについていい説明ができないかと方法を探しております。 ライブラリについて、良い説明方法がありましたら、 ご教授おねがいします。 知り合いは、javascriptの基礎は出来るレベルです。(for とかif。getelement類)

  • Googleがホストしているライブラリを調べる方法

    jQueryなどのライブラリを自サイトで使用する際、そのソースを自サイトに配置した上で以下のように指定して読み込む事が基本だと思います。 <script type="text/javascript" src="/js/jquery.js"></script> 最近、Googleなどが提供しているライブラリを借りてくれば、自サイトに配置せずに済むという事を覚えたのでそれを使って、以下のように書いています。 <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.7");</script> このように書けば良い、と解説されている記事を読んだからですが、他にもよくjQuery.UIなどを使う場合の記述も書かれています。 このように、解説しているものを見つけた場合は、これもホストされているのだなと使えるようになりますが、自分でGoogle内でどのライブラリが提供されているのかを調べる方法は検索したのですが見つけられませんでした。 ここに書かれている、こうすれば調べられるという方法があれば、教えていただけませんでしょうか。 よろしくお願いします。

  • JavaScript(ライブラリ)のキャッシュについて

    jQueryやprototypeなどのJavaScriptライブラリを使用して、ホームページに色々な効果をつけています。 その1つで、ナビゲーション箇所に「アコーディオンメニュー」を実装したのですが、ページ遷移する度に読み込みが遅いためか、メニューが全部展開(開いた)状態になってしまいます。 その後3秒~5秒ほどでアコーディオンが閉じた状態になります。 不恰好で困っています。 トップページなど入り口のページはあきらめるとして、他のページに遷移したときは、上記の「メニューが展開する」状態を回避する策はないでしょうか? jquery.js accordion.js というようにサイトのすべてのページに読み込みをしています。 JavaScriptについては「外部ファイルにするとキャッシュが残る」というように聞いたことがありますが、それは一度閲覧したサイトを次回、訪れた際にキャッシュが残っているということでしょうか? それともトップページで一度読み込みをすれば、他のページに遷移したときにトップページで既に読み込みをしたjsファイルがキャッシュされており、引き継がれる(再読み込みをしない)、ということでしょうか? 「アコーディオンがいちいち展開する」ことから、初めて訪れるページは、トップページでもサブページでも、同じjsファイルにもかかわらずいちいち読み込みいくということなのかな・・・と思っているのですが。 JavaScript、JavaScriptライブラリを混同しているような内容で、的はずれな質問をしてしまっているのかもしれませんが、当方、あまり知識を持ち合わせておらず、どうぞご容赦ください。

  • jQueryにて複数ライブラリを動かす

    wordpressにてWEB制作を行っています。 jQueryにてfullpage.jsというフルページスクロールするライブラリを使用しております。 そのセクションの一つをfullpage.jsの機能の一つ横スライドを行っているのですが、 fullpage.jsのオプションには自動再生はありません。 スライド部分のみ自動再生を行いたいので bxslider.jsというライブラリを使用し、 横スライドしたいセクションをbxsliderで動かしたいのですが、 bxsliderが全く作動しません。 また <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('.bxslider').bxSlider(); }); </script> の記述を <script type="text/javascript"> jQuery(document).ready(function() { jQuery('#fullpage').fullpage(); }); の上に書くと今度はfullpageが動きません。 jQueryライブラリは同ページで二つ同時には動かないんでしょうか? また、書き方が間違っていますでしょうか? 宜しくお願い致します。

  • アコーディオンとロールアップの共用について

    今、あるホームページを作っていて、アコーディオンとロールアップの機能を使用したいと思っています。 ロールアップについては今までも使ったことがあり、以下の2つのスクリプトを使用しています。 ○jquery.js ○yuga.js これに、今回はアコーディオンの機能を使いたいので、以下の3つのスクリプトを組み込んで使おうと思いました。 ○accordion.js ○prototype.js ○effects.js で、以下のようにHTMLソースのHEAD内にスクリプトを読み込む記述をして、動作テストを行ったところ、どちらか片方しか動作しないというトラブルが発生しました。 記述の順番を変えると、どちらかが動作するようです。 例1:ロールアップのみ動作する <script type="text/javascript" src="../js/prototype.js"></script> <script type="text/javascript" src="../js/effects.js"></script> <script type="text/javascript" src="../js/accordion.js"></script> <script type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/yuga.js"></script> 例2:アコーディオンのみ動作する <script type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/yuga.js"></script> <script type="text/javascript" src="../js/prototype.js"></script> <script type="text/javascript" src="../js/effects.js"></script> <script type="text/javascript" src="../js/accordion.js"></script> これら2つの機能を同時に使用するにはどうすればいいでしょうか?

  • javascript ライブラリ利用法

    web制作初心者です。 ひとつのページでjavascriptのライブラリを複数読み込むことは可能でしょうか? たとえば同一ページで、nifty cornersで角丸を作り、jqueryでマウスオーバー効果を生成したいのですが、同時にできなくて困っています。<head>の中で<script>で読み込ませていて、どちらか一方ならできるのですが。 もともと不可能なのか、あるいは方法があるなら教えてください。 用語遣い間違ってたらすみません。

  • JavaScriptプラグインが読み込めません

    「easySlider1.7」というJavaScriptプラグインを使い、サイト内の画像をスライドさせようとしています。 MacのデスクトップにおいたフォルダのHTMLと同じ階層にeasyslider1.7というフォルダをおき、<head>内に <script type="text/javascript" src="easyslider1.7/js/easySlider1.7.js" ></script> <script type="text/javascript" src="easyslider1.7/js/jquery.js"></script> と記述し、 <script type="text/javascript"> $(document).ready(function(){ $("#slider").easySlider({ auto:true }); }); </script> で動作させようとしているのですが、 ブラウザで試すと動かず、コンソールには ReferenceError: Can't find variable: jQuery TypeError: Result of expression '$("#slider").easySlider' [undefined] is not a function. と出てきます。 上段の”jQuery”はeasySlider1.7.js内に記述されているものです。 ちなみにgoogleAPIのjQueryをロードしても同じエラーが出ました。 何が原因なのでしょうか。ご回答宜しくお願いします。

  • jQuery UI accordionの改造

    jQueryについて質問させていただきます。 ただいま、jQuery UIのアコーディオンのプラグインを用いてWebサイトを制作しているのですが、このプログラムを少々改造したいと考えています。 行わせたいアクションは、jQuery UIを反映させたナビゲーション(video, photo, illust, text, contact といった具合にカテゴリーを設けています)に置かれているリンクをクリックした際に、そのリンク部分(例えば、videoというカテゴリーを選択したときにはvideoというコンテンツ名)とアコーディオン内に格納されている内容を上に向かってアニメーションさせる、といったものです。 浅学なうえ、javascriptやactionscriptなどのプログラミングが非常に苦手で手詰まりの状態です。 拙い説明ではございますが、よろしければ皆さまならどのように解決するかを教えていただけませんでしょうか? よろしくお願いいたします。

  • prototype+jquery+プラグイン

    prototype.jsとjqueryとプラグイン系の読み込み方が良くわかりません。 クロスブラウザ対応のMP3プレイヤーを導入したく追加したのですが 順番を並べ変えたりいろいろしましたが導入する事ができずにこまっています。 何かいい方法はないでしょうか? エラーの内容も順序によって様々です・・・・ <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript" src="lightbox.js"></script> <script type="text/javascript" src="lightbox_shortcut_keys_addon.js"></script> <script type="text/javascript" src="slide3/script/jquery-1.2.2.js"></script> <script type="text/javascript" src="jquery.cycle.all.js"></script> <script type="text/javascript" src="jquery.easing.1.3.js"></script> <script type="text/javascript" src="jquery.jcarousel.pack.js"></script> <script type="text/javascript"> jQuery.noConflict(); var $j = jQuery; </script> 以下追加===================================================== <script type="text/javascript" src="jquery-1.4.2.js"></script> <script type="text/javascript" src="jquery.compat-1.3.js"></script> <script type="text/javascript" src="jquery.jplayer.min.js"></script> <script type="text/javascript"> jQuery.noConflict(); var $j = jQuery; $j(document).ready(function(){ $("#mp3").jPlayer(); }); </script>

専門家に質問してみよう