ビルトイン関数

[up] [prev] [next]

■ 一覧

escape(), eval(), isFinite(), isNaN(), Number(), parseFloat(), parseInt(), String(), taint(), unescape(), untaint()

■ 数値変換

Number(exp) (e4/N4)

exp を数値に変換します。exp が日付オブジェクトの場合は1970年1月1日0時0分0秒(GMT)からの秒数(ミリ秒単位)を返します。変換に失敗した場合は特殊な値 NaN を返します。Number() をサポートしていない古いバージョンのブラウザを考慮するなら、単に値から 0 を引くことで、数値に変換することもできます。

num = Number("123") + Number("456"); // 579 となる
num = ("123" - 0) + ("456" - 0);     // 579 となる
parseFloat(string) (e3/N2)

文字列 string を数値に変換します。Netscape Navgator 3.0 以降では変換に失敗した場合は特別な値 NaN を返します。

num = parseFloat("1.23");  // 1.23 となる
parseInt(string [, radix]) (e3/N2)

文字列 string を整数値に変換します。小数点以下は切り捨てられます。radix に 2, 8, 10, 16 などを指定すると 2, 8, 10, 16進数として解釈します。radix を省略した場合、"0x" で始まっていれば 16進数として、"0" で始まっていれば 8進数として、さもなくば 10進数として解釈します。変換に失敗した場合は特別な値 NaN を返します。

xx = parseInt("1.99");    // 1 となる
xx = parseInt("123abc");  // 123 となる
xx = parseInt("abc123");  // NaN となる
xx = parseInt("0xff");    // 255 となる
xx = parseInt("0777");    // 511 となる
xx = parseInt("ab", 16);  // 171 となる

■ 文字列変換

String(num) (e4/N4)

num を文字列に変換する。古いバージョンのブラウザを考慮するなら 123 + "" とすればよい。

str = String(123) + String(456); // "123456" となる
str = (123 + "") + (456 + "");   // "123456" となる

■ エンコード

escape(string) (e3/N2)

string の文字列のうち、URL として用いることができない記号や日本語を %nn の形式にエンコードしたものを返します。不特定の文字列を URL に埋め込んだり、Cookie のパラメータとして指定する際にこの関数を用いてエンコードします。

str = escape("いろは");

古いブラウザでは "いろは" をシフトJISならシフトJISのまま "%82%A2%82%EB%82%CD" に変換しますが、Internet Explorer 4.0 以降では日本語を Unicode(UCS-2)にエンコードするように仕様が変更されており、"いろは" を "%u3044%u308D%u306F" にエンコードしてしまいます。Unicode を JIS、シフトJIS、EUC などに変換する場合は、JavaScript の unescape() を用いるか、漢字コード表を用いて1文字1文字変換する必要があります。

IE で、Netscape と同様のエンコード文字列を得る方法を「escape()でシフトJISエンコードする」で紹介していますので、参照してください。(2002.7.14追記)

unescape(string) (e3/N2)

%nn や %uxxxx の形式に変換された文字列を元の文字列に逆変換します。

str = unescape("%82%A2%82%EB%82%CD");

■ 値判断

isNaN(value) (e4/N3)

value が数値でないことをチェックします。数値、または数値として解釈可能な文字列であれば偽、さもなくば真を返します。NaN は Not a Number の意味です。

if (isNaN(num = parseInt(str))) {
    alert("数値ではありません。");
}
isFinite(num) (e4/N406)

num が有限の数値であれば真、さもなくば偽を返します。

■ スクリプト実行

eval(statements) (e3/N2)

statements を JavaScript の構文と解釈して実行し、その結果を返します。次の例では ans に 27 が代入されます。

ans = eval("3 + (6 * 4)");

■ セキュリティ対応

taint() (N3)
untaint() (N3)

JavaScript では、通常、別のウィンドウやフレームに対する値の参照に制限がありますが、taint() を用いることにより、この制限を一時的に解除します。untaint() は再度制限をかけます。ただし、このメソッドは Netscape Navigator 3.0 でしかサポートされていませんので、あまり使用されることはありません。


[up] [prev] [next]
Copyright (C) 1996-2006 杜甫々
改訂版初版:2001年5月20日、最終更新:2006年9月10日
http://www.tohoho-web.com/js/builtin.htm