<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>JavaScript</title><link>http://blogs.wankuma.com/kacchan6/category/1123.aspx</link><description>JavaScript</description><managingEditor>かつのり</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>かつのり</dc:creator><title>FizzBuzzを今更作ってみた</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/11/08/106741.aspx</link><pubDate>Thu, 08 Nov 2007 01:55:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/11/08/106741.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/106741.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/11/08/106741.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/106741.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/106741.aspx</trackback:ping><description>&lt;P&gt;普通じゃ面白くないので、変わった作り方にチャレンジしました。言語はJavaScriptです。&lt;/P&gt;
&lt;P&gt;まずはif文を使わないパターン。&lt;/P&gt;
&lt;P&gt;f=['fizz','','buzz',''];&lt;BR&gt;for(i=0;i&amp;lt;100;i++)&lt;BR&gt;document.write(((f[(!(i%3)+'').length-4]+f[(!(i%5)+'').length-2])||i)+'&amp;lt;br&amp;gt;');&lt;/P&gt;
&lt;P&gt;そして、極力短くしたパターン。&lt;/P&gt;for(i=0;i&amp;lt;100;i++){a=i;b=!(i%3);if(b)a='fizz';if(!(i%5))a=(b?a:'')+'buzz';document.write(a+"&amp;lt;br&amp;gt;")}&lt;BR&gt;
&lt;P&gt;if文を使わない代わりに三項演算子を使うなんてズルはしていません。true/falseを文字列化して、文字長を配列にマップしています。&lt;/P&gt;
&lt;P&gt;極力短くしたパターンは実際にこれ以上短くできるのでしょうか・・・。実は&lt;A href="http://d.hatena.ne.jp/Ozy/20071104#p1"&gt;7行テトリス&lt;/A&gt;に感化されています。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/106741.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>一行で IE の JavaScript を高速化する方法</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/10/12/101600.aspx</link><pubDate>Fri, 12 Oct 2007 01:09:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/10/12/101600.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/101600.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/10/12/101600.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/101600.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/101600.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://d.hatena.ne.jp/amachang/20071010/1192012056"&gt;http://d.hatena.ne.jp/amachang/20071010/1192012056&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;JavaScriptに、&lt;/P&gt;&lt;SPAN class=synComment&gt;&lt;PRE class=syntax-highlight&gt;&lt;SPAN class=synComment&gt;/*@cc_on _d=document;eval('var document=_d')@*/&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/SPAN&gt;
&lt;P&gt;を埋め込むと5倍近く早くなるらしいです。うーんamachang氏恐ろしい・・・
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/101600.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>リファラ偽装ブックマークレット</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/08/29/92632.aspx</link><pubDate>Wed, 29 Aug 2007 21:30:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/08/29/92632.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/92632.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/08/29/92632.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/92632.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/92632.aspx</trackback:ping><description>&lt;P&gt;今見ているページをリファラーにして移動するブックマークレットです。&lt;/P&gt;
&lt;P&gt;javascript:(function(){var a=document.createElement("a");if((a.href=window.prompt("url...",""))!=""){a.innerHTML="a";document.body.appendChild(a);a.click();}})()&lt;/P&gt;
&lt;P&gt;&lt;A href='javascript:(function(){var a=document.createElement("a");if((a.href=window.prompt("url...",""))!=""){a.innerHTML="a";document.body.appendChild(a);a.click();}})()'&gt;ここをお気に入りに追加&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;例えば、Google等で非常にｹﾞﾌﾝｹﾞﾌﾝなキーワードで検索し、その検索結果のページで上記ブックマークレットを実行します。&lt;/P&gt;
&lt;P&gt;プロンプトが表示されるので、ターゲットのサイトのURLを入力。するとターゲットのサイトには、何故かｹﾞﾌﾝｹﾞﾌﾝなキーワード検索の結果からリンクされたログが残ります。&lt;/P&gt;
&lt;P&gt;極端な話、ヤフーのトップからリンクされている！？ってことも可能です。&lt;/P&gt;
&lt;P&gt;リファラー偽装はブラウザを改造すりゃどうにかなるんですが、JavaScriptだけでもどうにかなってしまうのです。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/92632.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>Rhinoに挑戦</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/05/24/77906.aspx</link><pubDate>Thu, 24 May 2007 02:09:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/05/24/77906.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/77906.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/05/24/77906.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/77906.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/77906.aspx</trackback:ping><description>&lt;P&gt;JDK6にはまだ移行していないのですが、JavaScriptとJavaの連携をやりたくて、JavaScriptのJava実装であるRhinoに挑戦中。&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 730px; HEIGHT: 230px" rows=11 cols=79&gt;import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;

public class Test {

	public static void main(String[] args) throws Exception {
		Context context = Context.enter();
		InputStream in = null;
		InputStreamReader reader = null;
		try {
			Scriptable scope = context.initStandardObjects();
			URL url = Test.class.getResource("test.js");
			in = url.openStream();
			reader = new InputStreamReader(in);

			context.evaluateReader(scope, reader, url.getPath(), 0, null);
		} catch (Exception e) {
			throw e;
		} finally {
			Context.exit();
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
				}
			}
		}
	}
}
&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;というようなコードを書いて、このクラスと同じところにtest.jsという名前でJavaScriptファイルを配置して実行できます。もちろんブラウザ上のものではないので、documentとかwindowとか、そんなものは一切ないので、生のまま使うと結構地味です。&lt;/P&gt;
&lt;P&gt;ただ、クライアントサイドもサーバサイドもJavaScriptで連携はAjaxというのがやりたいし、業務ロジックなんかもJavaScriptにやらせてみたいのです。以下は擬似コードですが、&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 730px; HEIGHT: 272px" rows=12 cols=79&gt;(function(){
var conn = getConnection();
var sql = new SQL("select * from test where xxx = ?");
sql.bind(request.getParameter("xxx"));

var result = sql.execute(conn);
var record;
var records = [];
while(record = result.hasNext()){
    record.name = record.name + "さん";
    records.push(record);
}

conn.close();
return records;
})();&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;のようなDBからデータを取得して加工して配列で返すような処理をJavaScriptでさくさく書けると楽しいのかなと。例えばトランザクションをスクリプトの実行前後で自動的に操作すると、ストアド感覚で業務ロジックが書けそうです。&lt;/P&gt;
&lt;P&gt;グローバルなオブジェクトにDBに関連するクラス、オブジェクト、関数を配置すると、多分色々できるんだなという確信はあるのですが、ドキュメントが本当に少ないです。この辺はJDK6のソースコードを見ながらって感じですね。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/77906.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>Ajaxで郵便番号-&gt;住所変換</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/05/13/76579.aspx</link><pubDate>Sun, 13 May 2007 00:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/05/13/76579.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/76579.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/05/13/76579.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/76579.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/76579.aspx</trackback:ping><description>&lt;P&gt;Ajaxを使った郵便番号と住所変換です。HTTPサーバのみでサーバサイド処理が不要なバージョンです。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html"&gt;http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;静的なコンテンツのみであれば、サーバのリソースを節約する事が出来る為、私も業務で同じ手法を取り入れました。私が行った実装方法は、郵便番号の先頭4桁をファイル名にします。例えば郵便番号が012-3456なら、0123.jsonというファイルをサーバに配置します。&lt;/P&gt;
&lt;P&gt;次に0123.jsonの中には、&lt;/P&gt;&lt;PRE&gt;{
    "3" : {
        "4" : {
            "6" : ["XX県","XX市","字XXX"],
            "7" : ["XX県","XX市","字XXX"],
            "8" : ["XX県","XX市","字XXX"]}
        },
        "5" : {
            "6" : ["XX県","XX市","字XXX"],
            "7" : ["XX県","XX市","字XXX"],
            "8" : ["XX県","XX市","字XXX"]}
        }
    },
    "4" : {
        "4" : {
            "6" : ["XX県","XX市","字XXX"],
            "7" : ["XX県","XX市","字XXX"],
            "8" : ["XX県","XX市","字XXX"]}
        },
        "5" : {
            "6" : ["XX県","XX市","字XXX"],
            "7" : ["XX県","XX市","字XXX"],
            "8" : ["XX県","XX市","字XXX"]}
        }
    }
}
&lt;/PRE&gt;
&lt;P&gt;のように記述し、7桁確定したら先頭4桁でファイルを取得してレスポンスに対してevalを行います。結果の各プロトタイプを参照すれば、住所が取得できるわけです。Ajaxによる取得・評価が1回と、プロトタイプの参照が3回のみで、検索といえるような処理がないためかなり高速です。&lt;/P&gt;
&lt;P&gt;郵政のサイトからのダウンロード、アーカイブの解凍、jsonファイルの生成を月1回自動で行うスクリプトを書くと、常に自動的に最新の住所を保つ事もできます。&lt;/P&gt;
&lt;P&gt;サーバの特性を考慮したり、インクリメンタルなサーチを提供する場合、桁の扱い方を適切に変えるといいと思います。殆ど変化のないマスタ情報で他のテーブルと連携しないようなものは、JSON形式のファイルをクライアントに読ませるの方が楽ですね。例えば和暦とか。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/76579.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>実験的にCMS風の静的サイトを作ってみた</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/05/04/75521.aspx</link><pubDate>Fri, 04 May 2007 18:56:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/05/04/75521.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/75521.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/05/04/75521.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/75521.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/75521.aspx</trackback:ping><description>&lt;P&gt;取り合えずは実験的なCMS風の静的サイトを作ってみました。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://kacchan6.wankuma.com/site/"&gt;http://kacchan6.wankuma.com/site/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;コンテンツの情報ファイルとコンテンツファイルをAjaxで読み込んで表示しています。JavaScriptのライブラリはYahoo UI LibraryとEXTJSを使いました。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://extjs.com/"&gt;http://extjs.com/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;全てindex.htmlで処理しています。こういうサイトを作るのはいいのですが、&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SEO対策は無理。サーチエンジン糞食らえ！&lt;/LI&gt;
&lt;LI&gt;古いブラウザも無理。新しいブラウザ使え！&lt;/LI&gt;
&lt;LI&gt;テキストブラウザさようなら～&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;という状況に陥りますね。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/75521.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>JavaScriptで継承</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/05/02/75256.aspx</link><pubDate>Wed, 02 May 2007 01:09:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/05/02/75256.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/75256.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/05/02/75256.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/75256.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/75256.aspx</trackback:ping><description>&lt;P&gt;JavaScriptでの継承方法。たまに忘れるのでメモ。&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 598px; HEIGHT: 577px" rows=10 cols=64&gt;//クラスを作るオブジェクト(prototype.jsのパクリっぽい)
var Class = {
	create : function(){
                //コンストラクタ
		var result =  function(){
                        //init関数へ委譲
			this.init.apply(this, arguments);
		};

                //継承する機能を追加
		result.extend = function(cls){
                        //ここでプロトタイプチェーンを利用した継承
			this.prototype = new cls;
			return this;
		};

		return result;
	}
};

//取り合えずHogeクラスを作る
var Hoge = Class.create();

//メンバを実装
Hoge.prototype = {

	_i : 0,

	_j : 0,

	getI : function(){
		return this._i;
	},

	getJ : function(){
		return this._j;
	},

	init : function(i,j){
		this._i = i || 0;
		this._j = j || 0;
	},

	plus : function(){
		return this.getI() + this.getJ();
	}
};

//インスタンスを生成
var hoge = new Hoge(10,20);
//30が表示される
alert(hoge.plus());


//Hogeを継承したクラスを生成
var Fuga = Class.create().extend(Hoge);

//getIをオーバーライド
Fuga.prototype.getI = function(){
	return this._i * 10;
};

//Fugaのインスタンスを生成
var fuga = new Fuga(10,20);
//120が表示される
alert(fuga.plus());
&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/75256.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>functionタイピング</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/04/23/72525.aspx</link><pubDate>Mon, 23 Apr 2007 00:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/04/23/72525.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/72525.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/04/23/72525.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/72525.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/72525.aspx</trackback:ping><description>&lt;P&gt;面白いのを見つけました。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://shohoji.net/labs/function/"&gt;http://shohoji.net/labs/function/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;functionと何秒でタイプできるかを試すタイピングソフト。JavaScript廃人度を調べれますｗｗｗ。ちなみに自分は調子がいいと0.5秒台・・・まだまだ廃人には遠い・・・&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/72525.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>JavaScriptのシンタックスシュガー</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/04/23/72522.aspx</link><pubDate>Mon, 23 Apr 2007 00:37:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/04/23/72522.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/72522.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/04/23/72522.aspx#Feedback</comments><slash:comments>182</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/72522.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/72522.aspx</trackback:ping><description>&lt;P&gt;最近は結構有名になっていますが、JavaScriptには色々とシンタックスシュガーがあります。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;new Arrayと[]&lt;/LI&gt;
&lt;LI&gt;new Objectと{}&lt;/LI&gt;
&lt;LI&gt;new RegExp(正規表現文字列)と正規表現リテラル&lt;/LI&gt;
&lt;LI&gt;new Stringと文字列リテラル&lt;/LI&gt;
&lt;LI&gt;new Numberと数値リテラル&lt;/LI&gt;
&lt;LI&gt;new Functionと関数構文&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;という感じです。&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;P&gt;Array&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 514px; HEIGHT: 80px" rows=3 cols=56&gt;var hoge1 = [];
var hoge2 = new Array();
var hoge3 = [1,2,3,4,5];
var hoge4 = new Array(1,2,3,4,5);&lt;/TEXTAREA&gt; &lt;/P&gt;
&lt;P&gt;Object&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 514px; HEIGHT: 117px" rows=4 cols=56&gt;var hoge1 = {};
var hoge2 = new Object();
var hoge3 = {aaa : 1, bbb: 2};
var hoge4 = new Object();
hoge4.aaa = 1;
hoge4.bbb = 2;&lt;/TEXTAREA&gt; &lt;/P&gt;
&lt;P&gt;RegExp&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 514px; HEIGHT: 49px" rows=1 cols=56&gt;var hoge1 = new RegExp("^abc[0-9]*$","g");
var hoge2 = /^abc[0-9]*$/i;
&lt;/TEXTAREA&gt; &lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;P&gt;最後に、String/Number/Functionについてはシンタックスシュガーなのかちょっと微妙な感じですが、取り合えずこんな感じで書けるというサンプルです。&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 514px; HEIGHT: 165px" cols=56&gt;Number.prototype.times = function(fn){
	for(var i = 0; i &amp;lt; this; i++){
		fn(i);
	}
};

(5).times(function(idx){
    alert(idx);
});&lt;/TEXTAREA&gt; &lt;/P&gt;
&lt;P&gt;数値はNumberのインスタンスであるので、Numberのprototypeを使う事ができます。Rubyっぽいな～。&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 514px; HEIGHT: 182px" rows=1 cols=56&gt;String.prototype.toNumber = function(radix){
	if(!radix){
		radix = 10;
	}

	return parseInt(this) || 0;
};

alert("123".toNumber() + 10);
alert("".toNumber() + 10);
&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;これも同じ感じですね。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/72522.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>かつのり</dc:creator><title>Javascript Tips &amp; Tricks ( and oddities )</title><link>http://blogs.wankuma.com/kacchan6/archive/2007/04/22/72513.aspx</link><pubDate>Sun, 22 Apr 2007 23:54:00 GMT</pubDate><guid>http://blogs.wankuma.com/kacchan6/archive/2007/04/22/72513.aspx</guid><wfw:comment>http://blogs.wankuma.com/kacchan6/comments/72513.aspx</wfw:comment><comments>http://blogs.wankuma.com/kacchan6/archive/2007/04/22/72513.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kacchan6/comments/commentRss/72513.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kacchan6/services/trackbacks/72513.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://code.google.com/p/jslibs/wiki/JavascriptTips"&gt;http://code.google.com/p/jslibs/wiki/JavascriptTips&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;結構熱いテクニックが色々と書かれています(クロスブラウザ向けは少ないですが・・・)。ちょっと触発されたので、自分でも使う技を一部紹介します。&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
文字バッファ&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 557px; HEIGHT: 352px" rows=17 cols=60&gt;var StringBuilder = function(){
    this.init();
};

StringBuilder.prototype = {

    _values : null,

    init : function(){
        this._values = [];
    },

    append : function(value){
        this._values.push(value);
        return this;
    },

    toString : function(){
        return this._values.join("");
    }
};&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;使い方は、&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 557px; HEIGHT: 73px" rows=3 cols=60&gt;var hoge = new StringBuilder();
hoge.append("aaa").append("bbb").append("ccc");
alert(hoge);&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;実際に＋による文字列連結よりも早いです。&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;P&gt;ショートカット関数&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 557px; HEIGHT: 326px" rows=10 cols=60&gt;//IDで要素を取得
var $id = function(id){
    return document.getElementById(id);
};

//クリックイベントを追加
var $click = function(el, fn){
    if(typeof(el) == 'string'){
        el = $id(el);
    }

    if(el.attachEvent){
        el.attachEvent("onclick" , fn);
    }else{
        el.addEventListener("click", fn, false);
    }
}

//他よく使う関数をショートカット化＋クロスブラウザ化&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;使い方は、&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA style="WIDTH: 557px; HEIGHT: 73px" rows=3 cols=60&gt;$click("button-aaa", function(){
    alert("aaaがクリックされました。");
});&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kacchan6/aggbug/72513.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>