砂糖-甘くしたJavascript

シュガーとは?

これは、組み込みjavascriptオブジェクトを操作するためのjavascriptライブラリです。



使用例として、著者は次のコードを引用しています。

getLatestTweets( function (t) {

var users = t.map( 'user' ).unique();

var total = users.sum( 'statuses_count' ).format();

var top = users.max( 'followers_count' ).first();

var count = top.followers_count.format();

var since = Date.create(top.created_at);

return users.length + ' users with a total of ' + total + ' tweets.\n' +

top.screen_name + ' is the top with ' + count + ' followers\n' +

'and started tweeting ' + since.relative() + '.' ;

});








そうではない、コードはほとんど英語のテキストのように読みます。

せっかちな人はこのリンクを介して提供された機能調べることができ、残りの人はカットの下で簡単な説明を見つけるでしょう。



配列



Sugarは、 indexOf



forEach



reduce



などの標準Javascript 1.6メソッドのサポートを修正します。これらのメソッドは、標準関数がサポートしない引数タイプ(ネストされたオブジェクト、正規表現、文字列)を受け入れるように変更されました。 可能であれば、ネイティブのブラウザメソッドが使用されます。 メソッドの完全なリスト

[ 'a' , 'b' , 'c' ].indexOf( 'c' ); > 2

[{ foo: 'bar' }, { moo: 'car' }].indexOf({ moo: 'car' }); > 1

[ 'rocksteady' , 'and' , 'bebop' ].map( 'length' ); > [10,3,5]

[ 'rocksteady' , 'and' , 'bebop' ].sortBy( 'length' ); > [ "and" , "bebop" , "rocksteady" ]

[ 'rocksteady' , 'and' , 'bebop' ].findAll(/o/); > [ "rocksteady" , "bebop" ]

[ 'rocksteady' , 'and' , 'bebop' ].first(1); > [ "rocksteady" ]

[ 'rocksteady' , 'and' , 'bebop' ].from(1); > [ "and" , "bebop" ]

[ 'three' , 'two' , 'one' ].groupBy( 'length' ); > { "5" :[ "three" ], "3" :[ "two" , "one" ]}

[1,65,2,77,34].average(); > 35.8

[1,2].add([2,3]); > [1,2,2,3]

[1,2].subtract([2,3]); > [1]

[1,2].intersect([2,3]); > [2]

[1,2].union([2,3]); > [1,2,3]










Sugarは、正規表現でsplit



を使用する場合のブラウザー間の違いを修正します。 Unicodeおよび中国語、日本語、ギリシャ語、ヘブライ語をサポートするメソッドを追加することにより、言語サポートが改善されました。 テキストの柔軟な作業のために、 each



words



lines



paragraphs



などのメソッドが追加されました。 メソッドの完全なリスト

'abcdefgh' .split(/[bdf]/); > [ "a" , "c" , "e" , "gh" ]

'こんにちは' .hasHiragana(); > true

'환영 합니다' .hasHangul(); > true

' !' .hasCyrillic(); > true

'welcome' .pad(1, ' ' ).pad(3, '-' ); > "--- welcome ---"

'hut!' .repeat(3); > "hut!hut!hut!"

'off with her head!' .words(); > [ "off" , "with" , "her" , "head!" ]

'off with her head!' .each(/he.+?\b/g); > [ "her" , "head" ]

'off with her head!' .startsWith(/[az]ff/); > true

'off with her head!' .first(3); > "off"

'off with her head!' .from(3); > " with her head!"








数字



Math



オブジェクトの基本的なメソッドは、ショートカットとしてSugarで使用できます。 追加のパンは、必要な精度で丸められ、数字を揃えてフォーマットします。 Sugarには、数値を日付にバインドして、簡単に変換できるメソッドもあります。 メソッドの完全なリスト

(125.425).round(2); > 125.43

(125.425).round(-2); > 100

(4235000).format(); > "4,235,000"

(50).pad(5); > "00050"

(23).ordinalize(); > "23rd"

(5).upto(10); > [5,6,7,8,9,10]

(5).daysAfter( 'Wednesday' ); > "Monday, August 8, 2011 00:00"

(5).yearsBefore( '2001' ); > "Monday, January 1, 1996 00:00"

(5).times( function () {

/* Run 5 times */

})










日程



SugarはDate.create



メソッドを日付に追加します。これはさまざまな形式の日付を理解します(残念ながらdd.mm.yyyyは理解できません)-テキスト、相対、絶対、タイムスタンプ。 日付は、単純な構文を使用してさまざまな形式で表示できます。 すべての日付入力形式を理解するis



メソッドを使用するis



、複雑な比較を行うことができます。 メソッドの完全なリスト

Date.create( 'June 15, 2002' ); > "Saturday, June 15, 2002 00:00"

Date.create( '2002-06-15' ); > "Saturday, June 15, 2002 00:00"

Date.create( '2002/06/15' ); > "Saturday, June 15, 2002 00:00"

Date.create( '15 June, 2002' ); > "Saturday, June 15, 2002 00:00"

Date.create( 'today' ); > "Monday, August 1, 2011 00:00"

Date.create( '2 days ago' ); > "Saturday, July 30, 2011 20:26"

Date.create(888888888899); > "Tuesday, March 3, 1998 04:34"

Date.create( 'the 15th of last month' ); > "Friday, July 15, 2011 00:00"

Date.create( 'the first day of 1998' ); > "Thursday, January 1, 1998 00:00"

Date.create().format( '{12hr}:{mm} {tt} on {Weekday}' ); > "8:26 pm on Monday"

Date.create( '3200 seconds ago' ).relative(); > "53 minutes ago"

Date.create().iso(); > "2011-08-01T16:26:20.122Z"

Date.create().isAfter( 'May 25' );> true

Date.create(). is ( 'tuesday' ); > false

Date.create(). is ( 'July' ); > false

Date.create(). is ( 'the 7th of June' ); > false

Date.create().addDays(2); > "Wednesday, August 3, 2011 20:26"

Date.create().addMonths(2); > "Saturday, October 1, 2011 20:26"

Date.create().addYears(2); > "Thursday, August 1, 2013 20:26"










オブジェクト



SugarはObject.prototype



と直接対話しませんが、ライブラリはObject



クラスのメソッドにアクセスするためのいくつかのショートカットを提供します。 それらの1つはObject.extended



。これは、他の言語で利用可能なものと同様のメソッドを持つハッシュオブジェクトを作成します。 isString



isFunction



などのタイプチェックメソッドも追加されます。

Object.extended({ broken: 'wear' }).keys(); > [ "broken" ]

Object.extended({ broken: 'wear' }).values(); > [ "wear" ]

Object.keys({ broken: 'wear' }); > [ "broken" ]

Object.clone({ broken: 'wear' }); > { "broken" : "wear" }

Object.isString( 'yes, it is' ); > true

Object.isFunction( function () {}); > true










機能



Sugarにはbind



などの基本的なメソッドがあり、関数のスコープを定義できます。 また、 delay



defer



およびFunction.lazy



メソッドがあり、CPUに大きな負荷をかける計算用のクロージャーを作成できます。 メソッドの完全なリスト

( function (a) {

/* this = 'wasabi', a = 'bobby' */

}).bind( 'wasabi' , 'bobby' )();

( function () {

/* delayed 500ms */

}).delay(500);

[1,2,3].each(Function.lazy( function () {

/* Each iteration will occur 5ms after the previous one */

}, 5));




* This source code was highlighted with Source Code Highlighter .






便利なリンク:




All Articles