お爺さん製Javascript理解度テスト

こんばんわ。
罠にはまったお爺さんです。
そろそろ、鬼がやってきて閻魔様の裁きの場へ連れて行かれると思うんですが、その前に昨日、一昨日と作っていたJavascript理解度テストを乗っけておきます。
あまり、いいテストではないと思いますが、Javascriptに興味のある人はやってみてください。

11/17誤字とか修正。すんません。m(_ _)m

Javascript理解度テスト



答えは作ってませんので、自分で試してみてください。
ABCDのそれぞれから選択する形式ですが、答えがなかったり、複数の選択肢が正解の場合があります。その辺のトラップに引っかからないように。

問題が間違ってる場合はコメントしていただけるとうれしいです。



1.言語
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) Javascriptでサポートしている制御命令をえらべ
  A. if () {} else if () {} else () {}
  B. unless () {} else {}
  C. for (i = 0; i < 10; i++) {}
  D. for (A in b[]) {}
  E. foreach A (b[]) {}
  F. while (i < 10) {}
  G. do {} while (i < 10);
  H. switch () { case 1: ; case 2:; default:;}
  J. goto LABEL;
  I. last;
  K. next;
  L. die;
  M. continue;
  N. break;
  O. LABEL:

(2) 次の比較演算子でJavascriptでサポートされていないものを選べ
  A. &&
  B. and
  C. ==
  D. =
  E. eq
  F. is

(3) 以下のデータの記述形式をなんと言うか?
  var1 = { foo1:"hoge", foo2:"hoge2"};

  A. ハッシュ
  B. XML
  C. SGML
  D. JSON

(4) JSON形式でデータが記述されている文字列を持っている場合、連想配列に変換する方法として正しいものを選べ
  abc = 'var1 = { foo1:"hoge", foo2:"hoge2"};';

  A. var1 = json.parser(abc);
  B. eval(var1);
  C. var1 = new DOMParser().parseFromString(abc, "text/html");
  D. 上記以外

(5) (4)で変換後、どのようにアクセスするか。正しいものを選べ。

  A. var1.foo1;
  B. var1->foo1;
  C. var1.get("foo1");
  D. var1.getAttribute("foo1");



2.XML::DOM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) 次のXMLをDOMオブジェクトに変換する方法を選べ。ただし、ブラウザはIEとする。
  XMLString = "<hoge><node attr='var1'/></hoge>";

  A. 実はXMLのパースエラーが起こるので変換できない
  B. xd = new ActiveXObject("Microsoft.XMLDOM");xd.loadXML(XMLString);
  C. xd = XMLString.parser();
  D. xd = eval(XMLString);


(2) HTML中に次のHTMLタグがあるとする。このタグを取得する方法を選べ
  <div id="div1"></div>

  A. for(i = 0; i < document.divs.length; i++) {if (document.divs[i].id == "div1") break; }; d = document.divs[i];
  B. d = document.getElementByTagName("div");
  C. d = document.getElementById("div1");
  D. d = document.search("div:div1");

(3) 先のdivタグの中に"hello"という文字列を入れるにはどうすればよいか?

  A. d = "hello";
  B. d.appendChild(document.create("Hello"));
  C. d.write("hello");
  D. d.innerHTML = "hello";
  E. d.text = "hello";

(4) 先のdivタグの中に"hello"という文字列を付け加えて、なおかつ強調するにはどうすればよいか?

  A. d = "hello";
  B. b = document.createElement("b"); b.innerHTML = "hello"; d.appendChild(b);
  C. d.write("hello").bold;
  D. d.innerHTML = "<b>hello</b>";
  E. d.text = font.bold("hello");



3.ブラウザオブジェクト・フォーム部品
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) ブラウザウィンドウを開くJavascript文を選べ。

  A. window.createWindow();
  B. navigator.openWindow();
  C. window.open()
  D. document.appendChild(document.createElement("Window"));

(2) 一度きりのタイマを使用する場合の構文を選べ。

  A. window.setTimeout(func, msec);
  B. window.setInterval(func, msec);
  C. window.timeout = msec; window.onTimeout = func;
  D. window.setAlarm(func, msec);

(3) 次のフォームがHTML中にある時、テキストnameをabcに書き換える方法を選べ。

  <form name=f1 action="http://hogehoge/a.cgi" method="post" id="f1">
   <div id="ndiv">名前 : <input name="name" type="text" value="" id="namearea"></div>
   <div id="pdiv">PW : <input name="pw" type="text" value="" id="pwarea"></div>
   <div id="hdiv">身長 : <input name="height" type="text" value="" id="heightarea"></div>
   <div id="wdiv">体重 : <input name="weight" type="text" value="" id="weightarea"></div>
   <input type="submit">
  </form>
  
  A. document.forms[0].elements[0].text = "abc";
  B. document.f1.name.text = "abc";
  C. window.f1.name.value = "abc";
  D. document.f1.name.value = "abc";

(4) (3)のフォームでPW(パスワード)を、パスワードフォームに変えたい。
  どのようにすればよいか。

  A. window.f1.pw.type = "password";
  B. document.getElementById("pwarea").type = "password";
  C. document.getElementById("pdiv").innerHTML = 'PW : <input name="pw" type="password" value="" id="pwarea">';
  D. var pwarea = document.createElement("input.type=password"); getElementById("pwarea") = pwarea;



4.イベント
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) 以下の操作が行われた時に対応するイベントを答えよ

    クリック/フォーカスを失う/ページが読み込まれる
  A. onClick/onBlur/onLoad
  B. onPress/onFocus/onLoad
  C. onMouseDown/onFocus/onReset
  D. onClick/onChange/onResize

(2) 3-(3)の問題文中のフォームで、submitボタンを押した時に、
  すべてのフィールドが埋まっていない場合、エラーを出したい。どのようにすればよいか。

  A. submitボタンのタグでonClickイベントを取得、dieする。
  B. formタグの中でonSubmitイベントを取得、エラーを出してreturn falseする。
  C. id=weightareaタグの中でonChangeイベントを取得、すべてが埋まっていない場合はエラーを出す。
  D. http://hoehoe/a.cgiの中でパラメータを確認、すべてが埋まっていない場合はエラーを出す。

(3) 3-(3)の問題文中のフォームで体重が変更された際に数値である事を確認したい。
  関数function chk_weight(){}へイベントを渡す場合、どのようにすればよいか?
  ブラウザがIE、FFの両方の答えを述べよ。

  A. window.f1.weight.onChange = chk_weight;
  B. document.getElementById("weightarea").addEventListener("change",chk_weight,false);
  C. Event.observe(document.getElementByID("weightarea"),"onChange",chk_weight,false);
  D. document.getElementById("wdiv").innerHTML = '体重 : <input name="pw" type="text" value="" id="pwarea" onChange="chk_weight()">';
  E. document.getElementById("weightarea").attachEvent("onchange",chk_weight,false);



5.オブジェクト指向
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) 以下の文章の空白イロハを、選択肢から選び埋めよ。
  Javascriptは、[ イ ] のオブジェクト指向である。
  この特徴として、クラスが[ ロ ]に決定されておらず、インスタンス変数とメソッドの違いは重視されておらず、新しいオブジェクトは[ ハ ]作成される。

  A. クラスベース
  B. プロトタイプベース
  C. ホームベース
  D. 動的
  E. テンプレート的
  F. 静的
  G. 最初からクラスの機能を備えて
  H. 空もしくはクローンで
  J. インスタンス変数のみで
  I. newした後、はじめて変数にアクセスするタイミングで

(2) javascriptのオブジェクト指向は普通、次のうちどれをサポートしているか?
  A. カプセル化
  B. 継承
  C. 多様性
  D. コンストラクタ
  E. デストラクタ

(3) javascriptでprototype文はどの時に使用するか、以下から正しいものを選べ。

  A. プリプロセッサとして動作する
  B. 関数の引数を定義する時に使う
  C. newするクラスのひな形を定義する時に使う
  D. ブラウザオブジェクトで、ブラウザの設定を取得する際に使う

(4) 次のようなコードがある時、最初に何のAlertが表示されるか?
  なお、ライブラリはPrototype.js。
  var A = Class.create();
  A.prototype = {
   A: function() { alert("A"); },
   initialize : function() { alert("initializeA"); },
   funcA : function() { alert("funcA"); },
  };
  
  var a = new A;
  a.func();


(5) 以下からJavascriptの継承方法として正しいのを選べ
  A. subClass.prototype = superClass.prototype;
  B. subClass : superClass { foo : function() {}, };
  C. subClass = extends( superClass, { foo : function() {}, });
  D. for (var prop in superClass.prototype) { subClass.prototype[prop] = superClass.prototype[prop]; }

(6) 以下からJavascriptの例外として正しいのを選べ
  A. try { hogehoge; } catch(e) { error handling; }
  B. window.onerror = function (mes,file,num){error handling;};
  C. if (!eval("hogehoge;")) { error handling; };
  D. on error goto ERROR_SUBROUTINE;

(7) 以下のようなコードがある場合、alertとして何が出力されるか答えよ。
  function myFunc(a,b)
  {
   this.first = a;
   this.second = b;
  }
  function myFunc2(a,b,c)
  {
   this.third = c;
   myFunc.apply(this,arguments);
  }
  myObj = new myFunc2(1,2,3);
  alert(myObj.second);

  A. undefined
  B. 1
  C. 2
  D. 3
  E. NaN

6.CSS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) 次のCSSが定義されている時、id=div1のdivタグの色を黒に変えたい。
  どのようにするか?
  div {color:white;}

  A. document.getElementById("div1").style.color="#000000";
  B. document.getElementById("div1").color="#000000";
  C. document.div1.style.color="#000000";
  D. document.div1.color="#000000";

(2) 次のdivタグを、ブラウザの(100,100)地点に配置したい。
  どのようにするか?
  <div id="div1" style="position:absolute;">hoge</div>

  A. e=document.getElementById("wdiv").style; e.x=100;e.y=100;
  B. e=document.getElementById("wdiv").style; e.top=100;e.left=100;
  C. document.getElementById("wdiv").move(100,100);
  D. document.getElementById("wdiv").style.moveto(100,100);

(3) cssのposition:staticはどのような意味か?
  A. 親オブジェクトからの相対位置
  B. 規定の位置
  C. 絶対座標
  D. ウィンドウに対して固定


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

よーこ
2006年11月02日 12:26
ひたすらスクロール!
全問正解のときの賞金価格によって試みます!
2006年11月03日 12:58
よーこ氏が全問正解したら、ヤキニクおごりますよ。(^-^;)
でも、私もこの問題をいきなりやれと言われたら、7割正解ぐらいですんで結構難易度高いかと。

この記事へのトラックバック