## ビルトイン関数

[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 にエンコードするように仕様が変更されており、"いろは" を "%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-2002 杜甫々
改訂版初版：2001年5月20日、最終更新：2002年7月14日
http://www.tohoho-web.com/js/builtin.htm