夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

機能を絞った軽量javascriptライブラリ「Sugar」の紹介

javascriptでの開発の際にライブラリを導入することが多いと思います。私は現在jQueryを利用中です。
しかし、jQueryには文字列や配列操作系があまり充実していません。
かといって、他のライブラリを導入すると余計なDOM操作やAjaxなどの機能が付いてきて、無駄に重くなってしまいます。

そこで、紹介するのが、このライブラリー「Sugar」です。
公式サイト
APIリファレンス
このライブラリには、DOM操作も、Ajaxも、アニメーションも含みません
文字列や配列、関数、数値などなどの元からあるjavascriptのオブジェクトに機能を追加するのみです。
また、もともとある関数を上書きして挙動を変更する、といった関数は少なく、これを導入して他に影響がでるという可能性はかなり少ないです。
また、prototypeやjQueryとの共存を常に考えて作られているそうなので、そちらとぶつかることもないでしょう。


どういう機能があるかは、上記のAPIリファレンスを確認してみてください。
それぞれの関数をクリックするとサンプルが出てきます。その場で編集/実行が可能なので、手軽にお試しできます。

見ていくと気づかれるかもしれませんが、文字列操作系の関数の中に、「hiragana」「katakana」「hankaku」「zenkaku」という日本語向けのの関数が含まれます。
半角の文字を全角にしたり、ひらがなをカタカナに変換するなどの簡単な日本語処理が非常に簡単に使えるわけです。

他にもいくつか紹介します。エイリアスのような形で実装されているものも多数あります。
文字列(String)
文字列には大量の関数が追加されます。文字列の好きなところに文字列を追加する。文字ごとや行ごとに列挙し、コールバック関数を呼び出す。空文字や空白のみかを確認する。ある文字が含まれているかを確認する。タグを取り去る。url形式のパラメータをオブジェクトに変換する。そのほか、文字の先頭を大文字にしたり、font-colorをfontColorのようなキャメルケースに変換する機能などが充実しています。
数値(Number)
絶対値を求めるabsや切捨てを行うfloorや四捨五入のroundなどのMath系の関数が追加されます。floorやroundなどでは四捨五入する桁も指定できます。
また、指定した日時や今の日時からその数値を足したり引いたりした日時を求めるなどの日時系の関数が多く追加されます。
他にも、範囲を指定して乱数作成、0埋め、16進に変換、文字コードとして文字に変換、奇数偶数を判別などなどの便利機能があります。
配列(Array)
任意の位置に要素を追加したり、平均や合計の計算、コピーを作成、ある要素がいくつ含まれるかのカウント、nullなどの無効値の消去、条件を指定してフィルタ、ダブりを消去などなど。多くの関数には、コールバックの関数を渡すことで、高度な処理が可能となっています。たとえば、オブジェクトの配列なども関数を使うことでフィルタリングしたり、合計を求めたり出来ます。
日時(Date)
各種時間や日付、年を足し算する機能などが追加されます。1 week ago(1週間前)、next week(来週)、yesterday(昨日)などと指定してDateオブジェクトを作ったりも出来ます。
また、7月中、2011年3月以降、1月1日から1月10日までなどを指定して日付が当てはまるかなどをチェックも出来ます。他にも、未来や先週の日付かをチェックするようなことも出来ます。
「その日の終わり」や、「その月の始まり」のような日時を取得することも出来ます。
オブジェクト(Object)
オブジェクトのコピーや比較が出来ます。また、配列や文字列などの型チェック用の関数もあります。
オブジェクトの結合や、列挙、キーと値の列挙などにも対応します。
関数(Function)
関数の実行を数秒遅延する機能などが追加されます。たとえば、コールバック関数などで何千何万と繰り返しが行われると、CPUに負荷がかかりすぎてしまいます。この機能を使うことで、1msとか、10msずつ時間を空けて実行できます。ほんのわずかな時間でもCPUを開放することで、重い処理でのフリーズを回避できます。
また、thisを設定して関数を呼び出したりする機能もあります。
正規表現(RegExp)
正規表現の特殊な意味を持つ文字をエスケープしたり、フラグの設定が出来ます
こんな感じでしょうか。まだ何度も利用しているわけではないので、間違ったところがあるかもしれません。

気が向いたらAPIリファレンスを翻訳してみようと思います。
関連記事

コメント

ここをクリックしてコメントを投稿

非公開コメント

トラックバック

http://tinqwill.blog59.fc2.com/tb.php/65-5c3546cc

« next  ホーム  prev »

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。