好奇心の赴くまま、夫婦で活動・制作したものを公開しています。
次は「たった1つのインスタンス」Singleton パターンです。あるクラスがあって、そのクラスのインスタンスは実行アプリケーションのライフサイクルを通じて唯一に制限したい、何回生成しても同じインスタンスである、というものです。 var Main = Class.create(); Main.prototype = { initialize : function() {}, main : function() { document.writeln('Start.<br>'); var obj1 = Singleton.getInstance(); var obj2 = Singleton.getInstance(); if (obj1 == obj2) { document.writeln('obj1 と obj2 は同じインスタンスです。<br>'); } else { document
JavaScriptじゃねえと書けねえよ、ってやり方でデザインパターンを実装してみるコーナー。とはいってもデザインパターンとか良くわからないので適当に覚えながら作る。 間違ってる箇所あったらつっこんでくれるとありがたいです。 わかりやすい文章を書く能力が欠如してるのでデザインパターンって何だとかそういうのはこっち参照。 http://d.hatena.ne.jp/naoya/20050813/1123924312 JavaScriptのコンストラクタはPerl同様自在に定義できます。returnでobjectを返してやれば、newの結果としてそいつを使います。 普通にシングルトンなクラスを実装するにはこんな感じだと思います。 function Singleton(){ var self = arguments.callee; if(self.instance == null){ this.
Benchmark.js v2.1.2 A benchmarking library that supports high-resolution timers & returns statistically significant results. var suite = new Benchmark.Suite; // add tests suite.add('RegExp#test', function() { /o/.test('Hello World!'); }) .add('String#indexOf', function() { 'Hello World!'.indexOf('o') > -1; }) .add('String#match', function() { !!'Hello World!'.match(/o/); }) // add listeners .on('c
for (var key in obj) { if (obj.hasOwnProperty(key) { ... } } っていうのは Object.keys(obj).forEach(function(key) { ... }); と等価。 ベンチマークとってみた。環境はnode.js v0.4.7。 ベンチマークのコードはこんな感じ。一応hasOwnPropertyなしのfor inもはかる。 var Benchmark = require('benchmark'); var suite = new Benchmark.Suite; var len = process.argv[2] || 100; var obj = {}; while(len--) { obj['key' + len] = 'val' + len; } suite .add('for in', function()
JavaScript チュートリアル 初級編 JavaScript の基礎 JavaScript の第一歩 JavaScript の構成要素 JavaScript オブジェクト入門 JavaScript ガイド 入門編 文法とデータ型 制御フローとエラー処理 ループとイテレーター 関数 式と演算子 数と日付 テキスト処理 正規表現 インデックス付きコレクション キー付きコレクション オブジェクトを利用する Using classes プロミスの使用 JavaScript 型付き配列 イテレーターとジェネレーター メタプログラミング JavaScript モジュール 中級編 クライアントサイド JavaScript フレームワーク クライアントサイド Web API Language overview JavaScript のデータ構造 等値比較と同一性 プロパティの列挙可能性と所有権 クロ
こんにちは、太田です。前回はJavaScriptの基礎的な部分を解説しました。今回はJavaScriptのクロージャについて解説します。クロージャはJavaScriptでは使用頻度が高く(意識して使用していなくとも、ほとんどの場合クロージャが使われています)、今後の連載の中でも積極的に使っていきますのでここで確実に理解してしまいましょう。 クロージャとは クロージャはその定義を説明されてもなかなか理解できないため、難しいものだと思われがちです。しかし、ソースコードを中心に見方を少し工夫すればすんなりと理解できると思います。 さて、クロージャの前に確認しておくべき基本事項があります。それは、JavaScriptでは関数を入れ子にできる、という点です。ある関数の中に別の関数を定義することができます。基本中の基本ですが、これがクロージャにおいてもっとも重要です。 では、それを踏まえて次のコー
face.jsって、なんか、顔認識できるらしいぞ。凄い! そんなわけで、試してみる。 ccv.jsとface.jsを使うと実現できるぽい。 ccv.jsは、コンピュータビジョンのライブラリ。 face.jsは、顔認識するためのパターンデータみたい。 2つのソースは、以下から取得してきた。(どこがオリジナルかわからず。。。) https://github.com/wesbos/HTML5-Face-Detection 顔を認識っていったら、誰もが一度はやってみたいと思ったはず。 顔を笑い男に上書きするやつを書いてみた。 ソース(sample02.html) <html> <head> <title>sample02</title> <script type="text/javascript" src="./js/ccv.js"></script> <script type="text/jav
Emacsauto-complete.el は,補完候補をプルダウンで表示し,補完してくれる非常に強力な Emacs の拡張です.インストール,初期設定と詳しい説明については以下を参照してください.http://www.emacswiki.org/emacs-en/AutoComplete 今回は,この拡張で関数やプロパティ名などを補完するようにしてみました.基本的には前の記事と同じような感じです.http://d.hatena.ne.jp/jimo1001/20080712/1215842570因みに,補完候補のリストは xyzzy のようにリストの記述されたファイルを使用します. 補完候補リストのファイルhttp://files.undo.jp/completions.tar.gz Source以下 JavaScript 定義です.他のモードは適当書き変えると動きます. ;; ac-m
YAPC ASIA 2011行ってきました。 cho45さんのWAFの話とか、普段書いているコードに直結するような話で興味深い話も多かったのですが、それ以上に、techno-catさんやHaruka Kataokaさんの音楽関係のトラックにとても刺激を受けました。そういえば、自分がプログラムを始めたきっかけって、テクノとかエレクトロニカとか、そんな音楽やりたくてじたばたしているうちに片足突っ込んだのがはじまりだったよな、ということを思い出したりして、まあ、いわゆる初期衝動?に立ち返ったような気持ちになりました。 で、この一週間モンモンとしているうちに、今やるならWeb Audio APIだよななどと思いつつ色々いじってたら、こんなのが出来ました。 sonificator すべてJavaScriptで書かれていて、Web Audio APIを利用してブラウザ上でリアルタイムに動作するプログラ
id:cheesepie:20070131:1170172709 最近は、こういう風に JavaScript を勉強する人が増えていてとても嬉しいです ^^ id:cheesepie さん頑張ってください! で、ちょっと配列と連想配列の使いかたが違うようなので、エントリーを書こうと思いました。おせっかいだったらすみません>< ! やっぱり、このへんが JavaScript の難しいところのひとつなのだろうか。 ということで、 JavaScript の配列と連想配列の違い いってみよおー 連想配列とは JavaScript では連想配列は一番シンプルなオブジェクトのことである。つまり、すべてのオブジェクトは連想配列である。 以下のすべての連想配列はまったく同じものである。 // 1 var obj = { hoge: 'hoge' }; // 2 var obj = { 'hoge': 'h
Chrome版のFirebugことGoogle Chrome Developer Toolsですが、以前gihyoで解説したときよりさらに便利になっているので、少し紹介します(元はWebKitなので、そのうち(近いうちに)Safariでもそれなりに使えるようになるはずです)。 圧縮されたコードの整形 まず、目立つところからいきましょう。ちょうど先日更新されたChromeのdev版(12.0.742.0)に搭載されたばかりの機能で、minifyされているJavaScriptコードを読みやすいように整形して表示してくれるというものです(IE9の開発者ツールにも実装されている機能です)。 例えば、Google Analyticsのコードは圧縮されていて普通は読めません。 しかし、Chromeのデベロッパーツールなら、 このように整形してくれます。 やり方は簡単で、デベロッパーツールのScript
« DoBeDo 2.5 | メイン | javascript で Query String » javascript: escape(), encodeURI(), encodeURIComponent() 比較 javascript の escape(), encodeURI(), encodeURIComponent() 関数群について、どの文字がエンコードされてどの文字がエンコードされないのか分かりにくいのでまとめておく。 まずは、対象範囲 %20(半角スペース)〜%7E(チルダ~) 元データ !"#$%&'()*+,-./ 0123456789 :;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_` abcdefghijklmnopqrstuvwxyz {|}~ escape() %20%21%22%23%24%25%26%27%28%29*+%2C-
JavaScriptで処理を行いやすいようにAjaxからのレスポンスをJSON形式で取得した場合、eval関数に渡してもJavaScriptエラーが発生する場合があります。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く