Java Language
#4 Script 2

Return to Labo.

ヒント
前回の例題について、若干ヒントが足りないか?ま、ヒントを含めて、使えそうな所を書いて行くので参考にして欲しい.


  1. ビルトイン関数などの使用例について,
    今後、色々な場面で、使用されるケースが多いであろうビルトイン関数?について最初に触れておく.Javaは、オブジェクト指向を最も端的に再現した言語として定義されていて、簡単な入出力についても、クラスを作成して、行うという面倒な部分が有る.しかしながら、使用頻度の多いものについては、簡単に関数を定義されているので、それを使う事も出来る.

  2. 変数について,
    関数に行く前に、変数についてだが、JavaScriptについては、変数の形が非常に曖昧なのだ.BASICに慣れて居る場合は、すんなり受け入れられるかも知れないが、C言語に慣れている人には逆に難解だ.基本的には、代入する形に合わせられる.と考えた方が良いだろう.

    例えば、
      var VAL1=0 ; とした場合は、変数VAL1は、数値(整数型)になる.
      var VAL2="ABCD" ;の場合は、文字列型になる.
    しかし、上の条件で、var VAL3=VAL1+VAL2とすると、VAL3は文字列型"0ABCD"になる.また、改めてJavaAppletを学ぶ時は、この考え方を、C言語的に変えなくてはいけないので注意だ.

  3. alert()の使用例
    これは、ビルトイン関数そのものではないが、使用頻度が多いので、最初に紹介する.

    <HTML>
    <SCRIPT LANGUAGE="JavaScript">
     function hello(){
      alert("Hello World!!") ;
     }
    </SCRIPT>
    <HEAD><TITLE>TEST</TITLE></HEAD>
    <BODY>
    <INPUT TYPE=button VALUE="押下" onClick="hello()">
    </BODY>
    </HTML>


    の様に、使う事が出来る.簡単な計算結果などを表示させるにはもってこいの関数だ.例では画面のボタンを押せば、Hello World!!と表示されたBOXが現れる.本来は、window.alert(文字列)で使うらしいが、今のところ、alert単体で使えば良い.

  4. eval()の使用例,
    文字列から数値への変換,文字列で示された計算式の計算に、これほど使える関数は、今までの言語には無いね.eval(文字列)の形で、文字列をJavaScriptの構文と解釈して実行し、その結果を返すのだ.
    即ち、
      ans = eval("3+(6*4)");
      は、
      ans = 3+(6*4) ;
    に等しい結果を導く.上の例は例えが悪いか? 例えば、A,Bという2変数に何らかの数値が「文字列」で入力されていて、A,Bの和を求めたい場合は、
      ans=eval(A+"+"+B) ;
    とすれば良い.
    例えば、TEXTで入力されたものの和を求めるならば、

    <HTML>
    <SCRIPT LANGUAGE="JavaScript">
     function plus(){
      var VAL=eval(VAL1.value+"+"+VAL2.value) ;
      alert(VAL) ;
     }
    </SCRIPT>
    <HEAD><TITLE>TEST</TITLE></HEAD>
    <BODY>
    <INPUT TYPE=text VALUE="" NAME="VAL1"><BR>
    <INPUT TYPE=text VALUE="" NAME="VAL2"><BR>
    <INPUT TYPE=button VALUE="和の計算" onClick="plus()">
    </BODY>
    </HTML>


    の様にする.うお!回答に近づいてしまったかな?ここで出てきたVAL1.valueについて、先に説明しておこうこの辺がオブジェクト指向の入り口だ.つまり、オブジェクト(部品)であるテキストボックスを、文書上に用意して、ユーザの入力インターフェイスとするのだが、最終的にその入力をJavaScriptで参照しなければいけない.そこで、部品であるテキストボックスに、
     NAME="VAL1"
    の様に名前を付けておくと、JavaScriptでは、その値を、VAL1.valueで参照出来る訳だ.逆に、VAL1.value="1234"などと、テキストボックスの値を指定する事も可である.因みに、VAL1.value.lengthなどとすれば、入力された文字列の長さを参照出来る.

ここで、ウッズより回答例及び質問;
例題1:ウッズ回答例
  1. ネスケ4.6、4.7でスクリプトを実行させようとすると、エラーが出るんだけどなぜでしょうか?

    回答
    ネスケでやってないので、分からないが、考えられるのは、以下の2点,
    1. var の宣言を、if文の中で行わず、関数の先頭で行ってしまうとどうか?同じ変数が、関数の中で何度も宣言される形は、処理上問題が有るのかも.
    2. var valueという変数が、予約語なのでは?オブジェクトのメンバに、xxx.valueというのが有るが、これとぶつかってる可能性有り.
    →で、やってみて、どちらが悪かったか報告すべし.


  2. ラジオボタンのvalueをScriptから参照しようとしたんだけど、出来なかったんでプルダウン(<SELECT>)で逃げました.ラジオボタンはどうやって参照するもの?

    回答
    ラジオボタンは使おうと使うまいと結構だが、参照の方法は、こんな感じでどうか?
    <SCRIPT LANGUAGE="JavaScript">
     var CVAL=0 ; // ラジオボタンの参照用変数をグローバル定義して、
            // 初期値をラジオボタン本体の値に併せておく.ここでは0="+"

     function check(num){ //ラジオボタンのチェックにより、参照用変数を変える関数
      CVAL=num ;  }

     function vcalc(){
      switch(CVAL){
       case 0 :....
    ・・・・・・・・中略・・・・
    <INPUT TYPE="radio" NAME="RAD1" CHECKED onClick="check(0)">+
    <INPUT TYPE="radio" NAME="RAD1" onClick="check(1)">−
    <INPUT TYPE="radio" NAME="RAD1" onClick="check(2)">×
    <INPUT TYPE="radio" NAME="RAD1" onClick="check(3)">÷<BR>
    ・・・・ここが、ラジオボタン本体,NAMEが同じラジオボタンは、連動する.
    最初は、"+"がチェックされている様にする.その後、各項目がチェックされる毎に、check()を呼んで、参照用の変数を変える様にすると良い.

Return to Labo. Before Next