JavaScript Diary

Boolean, Number, String クラス [ 2001/08/08 ]
存在することが稀な Boolean, Number, String クラスですが、実際には
var f = new Boolean( true );
var n = new Number( 128 );
var s = new String( 'text' );
などのように使われます。

以外と知らなかった方もいるでしょうが、この Number, Boolean, String はコンストラクタ関数(クラス)としてだけではなく、ただの関数としても使用できます。例えばよく使われるのは以下のような場合です。
var n = 1 ;
var f = true ;

if( Boolean(n) ) alert( true );
if( Boolean(n) === f ) alert( true );
この例では Boolean 関数を使用し、n = 1 という値を真偽値(true)にキャストするという意味で使用しています。
型付けの緩い JavaScript ではこのように書く必要は滅多にないのですが、作成者側で明示的にキャストすることでプログラムをスマートに仕上げることができます。
尚、Number, String 関数についても同様の操作が可能です。

また余談ですが、この Number, Boolean, String クラスを基本データ型の「ラッパークラス(WrapperClass)」といいます。
実をいうと Objectクラスにもこのような機能があり、関数として使用する場合、引数をラッパークラスのインスタンス(ラッパーオブジェクト)へ変換したものを返します。
つまり、以下二つは全く同じことをしていることになります。
var objStr = new String( 'text' );
var objStr = Object( 'text' );