目次

オブジェクトなJavaScriptの基礎講座

Global(eval等)オブジェクト

◆ はじめに

Globalクラスには、escape、unescape、eval、parseInt、isNaN等のメソッドがあります。 このGlobalクラスのメソッドは、直接メソッド名で呼び出します。実は、Global関数のことです。

◆ メソッド

escapeメソッド

escape( s )s の文字列のアスキーコード(ISO Lathin 1)を返します。アルファベットと数値以外は%xxという形式(xxは16進数)で返されます。 IEではUnicodeを返しますので注意が必要です。

unescapeメソッド

unescape( code ) は、code の文字列のescapeされた文字を元に戻し返します。

次のサンプルでは、文字列 "123ABC123ABC" を変換した後、再び元にもどして返しています。

<script type="text/javascript">
    var abc = "123ABC123ABC";
    document.write( abc +"<br>" );

    var abc_escape = escape( abc );
    document.write( abc_escape +"<br>" );

    var abc2 = unescape ( abc_escape );
    document.write( abc2 +"<br>" );
</script>
実行結果

evalメソッド

eval( str ) は文字列 str が半角数字である場合に、それを Number型に変換します。

次のサンプルでは、文字列 "13" を String型から、Number型に変換しています。

  <script type="text/javascript">
    document.write( "12" + 3 );
    document.write( "<br>" );
    document.write( eval( "12" ) + 3 );
  </script>
実行結果

evalメソッド(その2)

eval( str )メソッドにはもう一つ機能があります。それは str 文字列を JavaScript のコードとしてもどす機能です。 戻された値は JavaScript のコードなので、結果的にこれが実行されます。

次のサンプルでは、文字列 "document.write( \"おはよう!\" );" を JavaScript のネイティブコードとして実行しています。

  <script type="text/javascript">
    var str = "document.write( \"おはよう!\" );" ;
    document.write( str +"<br>" );
    eval( str );
    document.write("<br>" );

    var test  = "test1";
    var test1 = "111222"; 
    document.write( test, "<br>" );    /* 結果は"test1" */ 
    document.write( eval( test ), "<br>" );    /* 結果は"111222" */ 
  </script>
実行結果

ダブルクオーテーションマーク( " )は JavaScript の中でそのまま出力するには、\" (エスケープ)とする必要があります。

parseIntメソッド

parseInt(s [, radix] )

文字列 s が半角数字であった場合に、それが10進数で幾つにあたるか返します。

オプションで radix(基数) を指定すると、s を 何進数 かとみなすradix基数として変換します。 radix の指定が無い場合は、n の先頭に 0 がついていれば8進数、0x がついていれば16進数として解釈します。0 以外の数から始まっている場合は10進数として解釈します。 たとえば、次のような場合、右にあげた数が返って来ます。

<script type="text/javascript">
	document.write(parseInt ("21")+"<br>");
	document.write(parseInt ("015")+"<br>");
	document.write(parseInt ("0x13")+"<br>");
	document.write(parseInt ("110",2)+"<br>");
</script>
実行結果

parseFloatメソッド

parseFloat( s ) は文字列 s が半角数字である場合、それを実数に変換します。

<script type="text/javascript">
	document.write(parseFloat("1.234")+"<br>");
	document.write(parseFloat("0.777")+"<br>");
	document.write(parseFloat("1.234")+parseFloat("0.777")+"<br>");
	document.write(parseFloat("もじでは...")+"<br>");
</script>
実行結果

isNaNメソッド

isNaN ( a ) は a が数値でないならば true 、 数値であるならば false を返します。

<script type="text/javascript">
var a = 8;
var b = "8";
var c = "A";
	document.write(isNaN(a)+"<br>");
	document.write(isNaN(b)+"<br>");
	document.write(isNaN(c)+"<br>");
</script>
実行結果

isFiniteメソッド

isFinite ( a ) は a が有限数であるならば true、有限数でないならば false を返します。

<script type="text/javascript">
var a = 3.141592;
var b = Infinity;
	document.write(isFinite(a)+"<br>");
	document.write(isFinite(b)+"<br>");
</script>
実行結果

目次