• ベストアンサー

変数の宣言?

xruzの回答

  • ベストアンサー
  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

おはようございますtomo-naoさん、xruzです。 基本的にはleaz024さんの言われる通り問題はありません。 ただ厳密に言うと、 <input type="button" value ="+1" onClick = "test()" > でvalue値には文字列の+1が入っています。 従ってvar x= document.aaa.y.value; は var x=parseInt(document.aaa.y.value); と整数値変換します。 (この場合次の行で無理やりx*1というような数値変換は不要です。) if (document.aaa.y.value == "10") { では文字列比較をしていますので document.aaa.y.value=x*1+1; は document.aaa.y.value=(x*1+1).toString(); と文字列変換します。 まぁ、普通はこんなこと考える必要はないと思われますがスクリプトの 動きが「おかしいな」と思ったときには頭の片隅から引っ張り出してください。 がんばってくださいね(~:~i

tomo-nao
質問者

お礼

パソコンの調子が悪くてお礼が遅くなってしまい申し訳ありませんでした!!詳しく答えて下さって本当にありがとうございました★整数値変換とか文字列変換っていうのがあるんですね!知らなかった~便利ですねアレ。これから使ってみようかな(^_^)ありがとうございました。大変勉強になりました☆

関連するQ&A

  • JavaScriptでBMI計算

    初めて質問しますので無礼があるかと思いますがお許しください。 JavaScriptを独学で勉強してます。そこでBMI計算ができるようなものを下のように様々なものを参考にしてつくってみたのですが、BMIがどんな値でも”低体重”しかでません。BMIの値によってそれぞれの警告画面が出るようにしたいんです;;どうすればいいのでしょうか?よろしくお願いします。 <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { if (aaa.h.value == "") { alert("身長を入力してください。"); return false; } if (aaa.w.value == "") { alert("体重を入力してください。"); return false; } height = document.aaa.h.value; weight = document.aaa.w.value; bmi = weight/height/100/height/100; if (aaa.bmi.value < 18.5) {          alert("低体重。"); }else{ if (aaa.bmi.value >25) { alert("肥満"); }else{ alert("標準") } } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> 身長:<input name = "h"><BR> 体重:<input name = "w"><BR> <input type="button" value ="測定" onClick = "test()" > <br> BMI:<input name = "bmi"> </form> </BODY> </HTML>

  • 表示されません(>_<)!!

    以下のように作ってみたんですけど、わたしは判定結果は四角の中に表示されるようにやったつもりだったんですけど、新しいページに「痩せてます」と表示されてしまいます。どこを直せば良いでしょう? お願いします <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { height = document.aaa.h.value; weight = document.aaa.w.value; himan = (height-100)*0.9; if (himan <= weight) { document.write("痩せてます。"); } else { document.write("太っています。"); } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> <table> <tr><td>身長</td><td><input name = "h"> </td></tr> <tr><td>体重</td><td><input name = "w"> </td></tr> <tr><td><input type="button" value ="判定" onClick = "test()" ></td></tr> <tr><td>判定結果</td><td><input name = "hi"> </td></tr> </table> </form> </BODY> </HTML>

  • 変数と関数の使い方について質問です。

    変数と関数の使い方について質問です。 現在JavaScriptを勉強しています。(超初心者ですのでバカな質問だと思いますがすみません)、変数を宣言して関数の中で使おうとしているのですが、うまく行きません。 以下のように書いて計算をしたいのですが。 <html lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- var moneyin = document.form1.text1.value; var moneyout = document.form1.text2.value; function zandaka(){ document.form1.text3.value=moneyin-moneyout; } --> </script> <title>簡単計算機</title> </head> <body> <h1>簡単計算機</h1> <hr> <h2>収支計算</h2> <form name="form1"> <p>収入&nbsp;<input type="text" value="0" class="right" name="text1">円</p> <p>支出&nbsp;<input type="text" value="0" class="right" name="text2">円</p> <p>残高&nbsp;<input type="text" value="0" class="right" name="text3" onfocus="zandaka()">円</p> </form> </body> </html> 関数の中に変数の宣言をすればうまく行くのですが、関数の外で変数の宣言をすると結果がNaNになります。 なぜでしょうか?変数は関数の外でまとめてしても良いのではないのでしょうか?? この考え方自体が間違いでしょうか? バカな質問だとは思いますが、よろしくお願いいたします。

  • 変数のクリア

    下のようなソースで、設問 form から変数scoreを取得し、点数によって 表示する診断結果画面をふりわけています。 ところが、何回かこの診断テストをやっているうちに、6点以上のときだけ表示するつもりの sindan3.htmlしか表示されなくなって困っています。 どなたか、修正方法をご指導いただけないでしょうか。 <HTML LANG="JA"><HEAD> <script Language="JavaScript"><!-- score = 0; function GetScore(){ for (i=0; i<6; i++) { if (document.myFORM.elements[i].checked) { score += eval(document.myFORM.elements[i].value); } } if(score >= 0 && score <= 2) { window.open("sindan.html", "kekka1", ""); } else if (score >= 3 && score <= 5) { window.open("sindan2.html", "kekka2", ""); } else{ window.open("sindan3.html", "kekka3", ""); } } // --></script></HEAD> <BODY> <FORM name="myFORM">第一問:あなたは? <BR> <INPUT TYPE="RADIO" NAME="q1" ID="r1" VALUE="1">引きこもり <BR> <INPUT TYPE="RADIO" NAME="q1" VALUE="2">立てこもり <BR> <INPUT TYPE="RADIO" NAME="q1" VALUE="3">生き残り <BR><BR> 第三問:あなたは? <BR> <INPUT TYPE="RADIO" NAME="q3" ID="r3_1" VALUE="1"> <LABEL FOR="r3_1">引きこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q3" ID="r3_2" VALUE="2"> <LABEL FOR="r3_2">立てこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q3" ID="r3_3" VALUE="3"> <LABEL FOR="r3_3">ヤリヤリ・ロリロリ</LABEL> <BR><BR> <input type="button" value="診断" onClick="GetScore()"> </FORM> </BODY></HTML>

  • 数値計算で謎

    シンプルな修正ユリウス日を求めるプログラムです。試しに2004年1月1日を求めると、誤った値「6640249」が出力されます。試行錯誤の結果、functionの中身、uに数値を代入する文(原文では改行されていません)で、dをMath.floor(d)に変えると正しい値「53005」が出力されました。この理由が全くわかりません。また、6640249はどのように計算された値でしょうか?ブラウザはIE6とLunascape2を使用です。 <html> <head> <title>myJulianday</title> <script type="text/JavaScript"> <!-- function myFuncJulianday(){ y=document.form1.input1.value; m=document.form1.input2.value; d=document.form1.input3.value; if(m==1){ m=13; y=y-1; } if(m==2){ m=14; y=y-1; } u=Math.floor(365.25*y)+Math.floor(y/400)-Math.floor(y/100)+Math.floor(30.59*(m-2))+d-678912; document.form1.input4.value=u; } //--> </script> </head> <body> <form type="text" name="form1"> <input type="text" name="input1" size="10">年 <input type="text" name="input2" size="10">月 <input type="text" name="input3" size="10">日 <input type="button" size="20" value="ユリウス日を表示" onClick="myFuncJulianday()"> <input type="text" name="input4" size="10"> </form> </body> </html>

  • 親フレームの変数にアクセス(JavaScript)

    [index.html] <script src="script.js"></script> <frameset rows="50%,*" frameborder="1"> <frame src="content1.html"name="cont1"> <frame src="content2.html" name="cont2"> </frameset> [script.js] var test_text="てすと"; [content1.html] <form> <input type="text" name="in"> <input type="button" onClick="window.parent.test_text = document.forms[0].in.value;" value="IN"> </form> [content2.html] <form> <input type="text" name="out"> <input type="button" onClick="document.forms[0].out.value = window.parent.test_text;" value="OUT"> </form> のようになっています。 「index.html」の「script.js」の変数に、「content.1html」と「content2.html」からアクセスしたいです。 ですが、フレームになっているため、思うような動作をしてくれません。 よろしくお願いします。

  • 文字列でなくて数値として処理をしたい。

    年度があって、2008 ボタンをクリックすると1を足して2009としたいのですが、文字列として扱われ20081となってしまいます。 数値として処理するにはどのように修正したらいいのでしょうか? ご存知の方教えてください。 <script type="text/javascript"> function test(parts){ var result = document.getElementById('result'); nendo = document.tForm.y.value; if(nendo == ""){ document.tForm.msg.value = "2008"; } else {document.tForm.msg.value = nendo + 1; } } </script> </HEAD> <BODY> </p> <form name="tForm"> <p> <INPUT TYPE="text" NAME="msg" SIZE=20 id="y"> <br> <input type="button" name="" value="足し算" onClick="test(this)">

  • 複数選択ができません

    multipleの練習をしていて、以下のように超簡易買い物オーダーフォームを作ったんですけど、単品での値段は出てくるのですが、複数選択をしたときに合計した金額が出てきません。アドバイスお願いします☆ <html> <head> <SCRIPT LANGUAGE ="JavaScript"> function keisan(){ var sum; for (i=0;i<document.aaa.erabu.options.length;i++){ if(document.aaa.erabu.options[i].selected){ sum=document.aaa.erabu.options[i].value; } document.aaa.goukei.value=sum*document.aaa.kazu.value; } }</SCRIPT> </head> <body> <h2>注文表</h2> お好きな品をクリックしてください。複数品目を選択する際には、 Ctrlを押しながらクリックしてください。 <form name="aaa"> <select name="erabu"size="4"multiple> <option selected value="65">ハンバーガー <option value="80">チーズバーガー <option value="150">ポテト   <option value="100">ジュース </select> を<input name="kazu" value="1">セット<br> 注文の内容が決まりましたら[合計」ボタンを押してください。<br> <input type="button" value="合計" onclick="keisan()"><input name="goukei">円 </form> </body> </html>

  • jQuery 変数の使い方について

    jQuery 変数の使い方について 【やりたいこと】 ラジオボタンが複数ある為現在のアクションをまとめたい。 ■ $("input:radio[name='radio01']:checked").val(); の'radio01'の部分に変数を使いたい。 ■document.forms["MON"].hradio02.value の"MON"のフォーム名と、「hradio02」name部分に変数を使いたい。 http://kaicoo.blogspot.jp/2012/03/query_30.html 等を参考に元のソースから JSをまとめてみましたが、うまくいきません。 jQuery内の変数の記述方法を 教えていただけませんでしょうか? よろしくお願いいたします。 ★JSをまとめたサンプルソース <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <script src="jquery.js"></script> <script type="text/javascript" language="JavaScript"> <!-- function setVal(obj) { var formname = obj.form.name; var radioname = obj.getAttribute('name'); alert(formname); alert(radioname); //選択したラジオのvalueをhiddenに格納する document.forms[formname].h '+ radioname +' .value = $("input:radio[name='+ radioname +']:checked").val(); alert(document.forms[formname].h '+ radioname +'.value); } //--> </script> </head> <body> <table border="1"> <FORM name="MON"> <tr> <td> 結果: </td> <td> <input type="radio" name="radio01" value="良好" onClick="setVal(this);" >良好 <input type="radio" name="radio01" value="不良" onClick="setVal(this);"> 不良 <input type="hidden" name="hradio01" value="未入力です。"> </td> </tr> <tr> <td> 結果2: </td> <td> <input type="radio" name="radio02" value="良好" onClick="setVal(this);" >良好 <input type="radio" name="radio02" value="不良" onClick="setVal(this);"> 不良 <input type="hidden" name="hradio02" value="未入力です。"> </td> </tr> </table> </Form> </body> </html> ★元のソースのサンプル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <script src="jquery.js"></script> <script type="text/javascript" language="JavaScript"> <!-- function setVal_01(obj) { document.forms["MON"].hradio01.value = $("input:radio[name='radio01']:checked").val(); alert(document.forms["MON"].hradio01.value); } //--> </script> <script type="text/javascript" language="JavaScript"> <!-- function setVal_02(obj) { document.forms["MON"].hradio02.value = $("input:radio[name='radio02']:checked").val(); alert(document.forms["MON"].hradio02.value); } //--> </script> </head> <body> <table border="1"> <FORM name="MON"> <tr><td> 結果: </td> <td><input type="radio" name="radio01" value="良好" onClick="setVal_01(this);" >良好 <input type="radio" name="radio01" value="不良" onClick="setVal_01(this);"> 不良 <input type="hidden" name="hradio01" value="未入力です。"> </td> </tr> <tr> <td> 結果2: </td> <td> <input type="radio" name="radio02" value="良好" onClick="setVal_02(this);" >良好 <input type="radio" name="radio02" value="不良" onClick="setVal_02(this);"> 不良 <input type="hidden" name="hradio02" value="未入力です。"> </td> </tr> </table> </Form> </body> </html>

  • 「…は宣言されていません。」エラー回避

    下記のようなスクリプトコードがあります。 <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>test</title> </head> <body> <script type="text/javascript"> <!-- function pulldown() { sss.style.display="block";  --- (1) sss.style.left=event.x; sss.style.top=event.y; } function listsel() { var kintaicode = document.form1.kintaicode.options[document.form1.kintaicode.selectedIndex].value ; document.form1.an.value = kintaicode ; sss.style.display="none"; } //--> </script> <form name="form1"> <select id='sss' style='display:none;position:absolute' name='kintaicode' onchange='listsel()'>  --- (2) <option value='1'>東京都</option> <option value='2'>神奈川県</option> </select> <table> <tr> <td onClick="pulldown()">A</td> </tr> <tr> <td onClick="pulldown()">B</td> </tr> </table> <input type='text' name='an'> </form> </body> </html> (2)のところでidを宣言しているのですが、実行させAをクリックすると「エラー:'sss'は宣言されていません。」と表示されます。 回避させる方法はありますか? ちなみに、何をしたいのかというと、クリックしたところにプルダウンメニューを出したいのです。