私はJavaScriptを学び始めたばかりで、Underscore.jsとjQueryに出会いました。Underscoreは本当にクールに見えますが、jQueryがUnderscoreに似た関数をまだ提供していないのではないかと思います。では、両方を使用する価値はありますか?
私はJavaScriptを学び始めたばかりで、Underscore.jsとjQueryに出会いました。Underscoreは本当にクールに見えますが、jQueryがUnderscoreに似た関数をまだ提供していないのではないかと思います。では、両方を使用する価値はありますか?
回答:
これは、jQueryのtux、およびBackbone.jsのサスペンダーと連動するタイです。
アンダースコアはデータ操作により適しており、多くのRubyメソッドをJavaScriptにもたらします。いくつかの交差がありますが、それらを相互に排他的にするには十分ではありません。
アンダースコアは、データ/コードを処理するための合計60の関数を提供します。多くの機能がjQuery、Prototype、script.aculo.usなどの他のライブラリに存在することに同意しています。たとえば、jQueryにはeach、map、find、filter、toArrayなどの関数が存在します。これらはアンダースコアにもあります。これは、ライブラリをjQueryから独立させるためです。
いつアンダースコアを使用するのですか?:
現在、Backbone.jsで広く使用されており、1ページのJavaScript Webアプリを作成するためにMVCアーキテクチャを使用しています。underscore.jsの最も重要な機能は、テンプレート機能です(jQueryではできません)。このライブラリには他の多くの便利な関数があり、他のJavaScriptライブラリから独立しています。
Underscoreが提供する関数のリストを以下に示します。
コレクション: それぞれ、マップ、リデュース、リデュースライト、検索、フィルター、拒否、すべて、任意、含める、呼び出す、pluck、最大、最小、sortBy、groupBy、sortedIndex、shuffle、toArray、size
配列: 最初、最初、最後、残り、コンパクト、平坦化、なし、ユニオン、交差、差、uniq、zip、indexOf、lastIndexOf、範囲
関数: bind、bindAll、memoize、delay、defer、throttle、debounce、once、after、wrap、compose
オブジェクト: キー、値、関数、拡張、デフォルト、クローン、タップ、isEqual、isEmpty、isElement、isArray、isArguments、isFunction、isString、isNumber、isBoolean、isDate、isRegExp、isNaN、isNull、isUndefined
Utitity: noConflict、identity、times、mixin、uniqueId、escape、template
オーバーラップが心配で、JQuery AJAXのようなものが必要ない場合は、Sizzleという名前のJQueryセレクターエンジンだけを使用することを検討してください。
これはすべてのプロジェクトに当てはまるわけではないことに注意してください。SizzleとUnderscoreを使用すると、一部のJQuery機能(AJAXなど)が失われます。特定のアプリケーションに本当に必要なものを検討する必要があります。