先日Developers Summitデビューしました。こんにちは、先生です。 前回公開した記事「エンジニアがいい感じにフロントエンド開発を爆速化できる環境構築の手順」の反響が大きかったので、そこで使われているWebPackというModule Bundlerをもう少し深く掘り下げていきたいと思います。 WebPackとは WebPackは静的なファイルの依存関係を解決しつつ結合したり分割したりするツールです。非常に多機能でカスタマイズの幅が広いのが特徴です。 http://webpack.github.io/docs/ 個人的な経緯ですが、require.js -> Browserifyを経てWebPackに落ち着いたところです。 WebPackはnpmを使ってインストールします。 npm install webpack -g ※ npmが使えない方はまずNode.jsをインストールしてく
altJSであるTypeScriptと関数型でのプログラミングをサポートするUnderscore.jsを使い、関数型プログラミングについての理解を深めていくために、様々な問題を解いていく記事を定期的に記載していきたいと思います。 TypeScriptについて簡単に知りたい方はこちらを参照してください。 公式ページ Welcome to TypeScript 参考になる記事 TypeScriptで学ぶJavaScript入門:第1回 TypeScriptの概要 (1/4) - @IT Underscore.jsについて簡単に知りたい方はこちらを参照してください。 公式ページ Underscore.js 参考になる記事 Underscore.jsの入り口:連載|gihyo.jp … 技術評論社 さて、第1回はワードカウント問題を解いていきたいと思います。 ※ワードカウント問題などの例は下記のか
昨年のAdvent Calendarを眺めたり、JS周りの記事を見ていると、RequireJSとか、CommonJSとか、AMD、Browserify、webpackあたりが、同じような文脈で登場するんですが、それぞれ何を指しているのかよくわからなかったため、今更ながらまとめてみます。 前提 小規模にしかJavaScriptを使っていないWebサイトでは、jQueryを使ってDomイベントで色んな処理をして、Domに反映させる。というような処理が、ごちゃっとまとめて書くことが多いかと思います。ごちゃっととは、特にDomにしか情報を保持していない状態を指していて、イメージとしてはこのようなコードです。 $(function() { # イベントハンドラ $("#btn").on("click", function(){ $.ajax({ url: "api/resources", dataT
はじめに ディレクティブは、AngularJSにおいて、ViewとModelの双方向バインドを実現するための根幹的な仕組みである。 ディレクティブは、開発者から見ると、Templateの要素・属性として現れる。 例えば、テキストボックスの入力値とscope.nameを紐付ける場合、Angularではhtmlに下記を記述するだけで、ユーザの入力値がscopeへ即時反映される。 上記コードの"ng-model"はAngularにデフォルトで組み込まれたディレクティブである。 もちろん、htmlの文法上は、ng-modelという名称の属性はinputタグには存在しない。Angularが独自にng-model属性を解釈して、双方向バインディングの機能を実現しているのである(Angularでは、これを「html文法の拡張」と呼んでいる)。 ディレクティブには、ng-repeatや{{...}}等、様
配列に含まれる要素の中で指定した範囲の要素をコピーして、新しい配列として取得することができます。インデックス 0 から最後の要素までを指定することで元の配列をコピーした配列を作成することもできます。ここでは JavaScript で配列の指定した範囲の要素をコピーして新しい配列を作成する方法について解説します。 ※ 配列をコピーするには concat メソッドでも行うことができます。詳しくは「concatメソッドを使った配列のコピー」を参照されてください。
1000 100000 1000000 のような数値に対して、 1,000 100,000 1,000,000 のように、3桁ごとにカンマを挿入する方法を解説します。 正規表現による方法 数値を文字列に変換し、正規表現で置換します。 var num = 1234; String( num ).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,' ); // 1,234 Perlなどの後読みをサポートする正規表現ならば、 String( num ).replace( /(?<=\d)(?=(\d\d\d)+(?!\d))/g, ',' ); のようにも書けるのですが、JavaScriptは後読みをサポートしないため、前述のようにする必要があります。 whileループによる方法 whileループで置換をくり返す方法もあります。しかしグローバルマッチの置換で処理で
引っ越し前のサイトから移植しました。 文字列の切り出しっていつも迷うよね。 実際にスクリプトを動かして確認してみよう。 slice 文字列.slice(開始位置 [,終了位置] ) 開始位置と終了位置を指定。終了位置は省略可能。 省略すると最後まで切り出す。 終了位置は、末尾が0になる。 開始位置をマイナス値にすると、後からの桁数になる(右端のみ切り出せる)。 <例> str.slice(3); //"3456789" str.slice(-2); //"89" str.slice(3, -1)); //"345678" var str = "0123456789"; str.slice( , ); strの内容 : 結果 substr 文字列.substr(開始位置 [,切り出す長さ] ) 開始位置と切り出す長さを指定。長さは省略可能。 省略すると最後まで切り出す。 開始位置をマイナス値
前回のJavaScriptの配列で、特定の要素の数を調べる方法の続きです。 JavaScriptの配列で、任意の文字列に置換する。 文字列を使う方法と、変数を使う方法の2種類があります。 文字列を使って置換する 配列の変数名.splice(置換したい場所、そこから何個分、文字列);を使います。今回のプログラムでは、置換したい場所は2=ゾンビの要素数のときなのでiを、1つだけ置換するなので1を、文字列にゾンビを代入しています。 <script type = "text/javascript"> var zombiArray = [0,1,0,1,2,0,0,1]; for (var i = 0; i < zombiArray.length; i++) { if(zombiArray[i] == 2){ zombiArray.splice(i,1,'ゾンビ');//配列は、正規表現NG。spl
(2014/6/1追記) 本記事はTypeScriptに対する知識が浅いうちに生意気にも書いた記事ですが、TypeScriptのimportはクライアントサイド(ブラウザ)向けとサーバサイド(Node.jsなどのCommonJS)向けで解釈が異なり、このためコンパイラtscへのオプション指示が必要になります。以下の本文で「コンパイラに対するオプションを与えないと怒られる」と書いたのはクライアント向けとサーバ向けの情報を混ぜて勘違いした結果です。 以下は、クライアントサイド向けとしてimportを使う際に書いた古い記事です。コメント欄にも有益な情報を頂いておりますので、併せてご参照ください。 -- TypeScriptによってJavaScriptもずいぶん書きやすくなりました。OOPとしてグローバル変数や静的関数は極力減らしたいところですが、jQueryなどのJavaScript資産を併用す
プロプログラマ プログラマーを職業としてます。 C#,Oracle,HTML+JSなどの言語ノウハウを中心に情報発信していきます 年齢計算と聞くとなんだかとても難しそうなイメージを持ちますが、実はとても簡単に求められます。 (1) 生年月日をYYYYMMDD形式の数字にします。→19790115 (2) 年齢計算基準日(例えば今日)を同じく数字にします。→20120124 (3) (年齢計算基準日 – 生年月日 ) / 10000 を計算し、小数点以下を切り捨てます。 →(20121024-19790115)/10000 =33.0009 =33 この例だと、現在33才ということになります。 この計算式では面倒な閏年の考慮など必要ありません。 計算式が単純なので、どんなプログラム言語でも同じように実装できると思います。 ただし、年齢の定義は用途によって考え方が異なることがあります。 特に年
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く