SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

jQuery 3で何が変わったのか?

いよいよ正式版が登場! jQuery 3での変更点と前バージョンからの移行のポイント

jQuery 3で何が変わったのか? 前編


  • X ポスト
  • このエントリーをはてなブックマークに追加

何が変わったか(個別機能)

 これから、jQuery 3.0で変わったところを、個別に解説していきましょう。jQuery 3.0では、変更の度合いを次のように分類してます。個々の機能について、どの程度の変更なのかも、併せて紹介することにします。

破壊的な変更(Breaking change)

 API仕様が変更され、既存のコードに影響を及ぼす可能性のある変更です。

新機能(Feature)

 機能の追加であり、 ほとんどのケースで既存のコードへの影響がない変更です。

非推奨(Deprecated)

 jQuery 3.0のうちは存在するものの非推奨となったAPIです。将来の大きなバージョンアップでは削除される可能性があります。

コア機能(1)

 コア機能では、破壊的な変更(大きな仕様変更)が6つ、新機能の追加が2つ、非推奨が3つあります。

破壊的な変更

1. Strict Modeのサポート

 jQuery3.0は、Strict(厳格)モードでも動作するようになりました。jQuery内のコードで、use strictが宣言されています。Strictモードとは、より厳格にエラーチェックが行われるモードで、従来ではエラーにならなかったような、あいまいな実装でもエラーとして検知することが可能となっています。

 ただし、jQuery3.0を利用する側のコードでは、Strictモードが必須ではなく、Strictモードではない従来どおりのコードで問題ありません。

2. document-readyハンドラの非同期化

 document-readyハンドラとは、DOMの読み込み完了後に呼び出されるハンドラです。このハンドラには、DOM解析が完了した時点で実行したい処理を記述します。

 従来は、document-readyハンドラが追加された時点で、すでにDOM解析が完了してready状態のときは、同期的に処理が実行されていました。jQuery 3.0からは、ready状態にかかわらず、非同期で処理を行うようになります。その結果、処理の順序の一貫性が保証されます。

 たとえば、次のような処理では、従来は、必ずしも"outside ready"、"ready"の順に出力されませんでした。jQuery 3.0からは、必ず"outside ready"、"ready"の順になります。

$(function(){
   console.log("ready");
});
console.log("outside ready");

 また、document-readyハンドラが複数あった場合、非同期処理のため、どこかのハンドラでエラーがあったとしても、他のハンドラは影響を受けずに実行されることになります。

3. $.isNumericの処理変更

 数値かどうかを判定する$.isNumericメソッドは、数値と数値に変換できる文字列だけに適用され、独自にtoStringメソッドを実装したオブジェクトには適用できなくなりました。

var obj  = new Object();
obj.toString = function() {
    return "123";
};
console.log( $.isNumeric(obj) );  // false(従来はtrue)

4. 非推奨の.contextと.selectorを削除

 バージョン1.9から非推奨になっていたcontext、selectorプロパティが削除されました。

5. ドキュメントにない内部メソッドの無効化

 内部メソッドにする予定でドキュメントに記載していなかった次のメソッドは、外部から利用できなくなりました。

  • $.swap
  • $.buildFragment
  • $.domManip

6. 空のコレクションに対するメソッドの戻り値の変更

 空のjQueryコレクションに対して、次のメソッドを呼んだ場合、従来は戻り値がnullとなっていましたが、undefinedになりました。

  • .width()
  • .height()
  • .innerWidth()
  • .innerHeight()
  • .outerWitdh()
  • .outerHeight()
  • .offsetTop()
  • .offsetLeft()

次のページ
コア機能(2)

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
jQuery 3で何が変わったのか?連載記事一覧
この記事の著者

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9545 2016/07/28 11:26

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング