初歩サンプル(値の型?)でつまづいてます。。
HTMLとスタイルシートしかわからず、初のプログラミング言語としてJavascriptを選びました。
とりあえず入門書籍のサンプルを見ながら勉強しているのですが、
さっそくfor文というか、値の型?で混乱してます。。
【Javascript部分】
function doClick(){
var str = ""; //←(1)
var n = document.form1.select1.options.length;
for(var i = 0;i < n;i++)
if (document.form1.select1.options[i].selected)
str += document.form1.select1.options[i].value + ","; //←(2)
var str = "選択項目:" + str ;
document.getElementById("showText").innerHTML = str;
}
【HTML部分】
<p>※テスト用ページ</p>
<div name="showText" id="showText">(※未設定)</div>
<form name="form1">
<select name="select1" size="3" multiple>
<option value="あいうえお">あいうえお</option>
<option value="かきくけこ">かきくけこ</option>
<option value="さしすせそ">さしすせそ</option>
</select>
<input type="button" value="送信" onClick="doClick();">
</form>
options.lengthで配列の総数を数えて、真偽値を調べfor文で繰り返し、結果を反映させる部分はわかります。
わからない部分は、
(1)「var str = "";」の「""」は空の文字列を代入?ということでしょうか?
試しに消し見ると「undefined」が記述されるのですが……
型を定義してないと起こる?問題のようで、型の宣言のようなものということでしょうか?
(2)str += document.form1.select1.options[i].value + ",";
for文中で、最初の一回目は「""+あいうえお+","」、二回目は「""+あいうえお+","+かきくけこ+","」……と繰り返されていくと思うのですが、(1)の意図がわからないので、「""」の空部分の意味が理解できません。
たぶんとるに足らない疑問のような気がするのですが……
ご教授いただけるとうれしいです。
※蛇足なんですが、for文やif文に中括弧{}がついてなくても動きはしますが、つけないのがベターなのでしょうか?
(入門書籍なのでスタンダートを書いてるとは思うのですが……)
お礼
回答ありがとうございました。 そしてお礼が遅くなりました。 ごめんなさい!! 平均身長の例はとても分かりやすかったです。