OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

変数の宣言?

  • すぐに回答を!
  • 質問No.178441
  • 閲覧数31
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 93% (15/16)

以下のように変数の練習をしていたのですが、document.aaa.y.valueを右辺に持ってこないやり方っていうのはあるのでしょうか?
また、ifの中身についてなのですが、一応これでも動くんですけど文法的にはどうなのでしょう?お願いします
<html>
<head>
<title>変数の練習</title>
<script language="JavaScript">
<!--

function test()
{
var x= document.aaa.y.value;
document.aaa.y.value=x*1+1;

if (document.aaa.y.value == "10") {
document.aaa.y.value=0;
}
}
//-->
</script>
</head>
<body>
<form name="aaa">
カウント:<input name = "y" value=0>
<input type="button" value ="+1" onClick = "test()" >
</form>
</body>
</html>
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル10

ベストアンサー率 50% (72/143)

おはようございます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

お礼率 93% (15/16)

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

その他の回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 75% (398/526)

> document.aaa.y.valueを右辺に持ってこないやり方 これって、どこのことを言っているのでしょうか? 右辺にせずに、変数 x に値をコピーしたいというのであれば、それは不可能です。 もし x を使わずに値を1増やしたいというのであれば、   document.aaa.y.value++; か、   ++document.aaa.y.value; でOKです。 & ...続きを読む
> document.aaa.y.valueを右辺に持ってこないやり方
これって、どこのことを言っているのでしょうか?
右辺にせずに、変数 x に値をコピーしたいというのであれば、それは不可能です。
もし x を使わずに値を1増やしたいというのであれば、
  document.aaa.y.value++;
か、
  ++document.aaa.y.value;
でOKです。

> ifの中身について、文法的にはどうなのでしょう?
文法は問題ないですよ。
ただ、結構document.aaa.y.valueがあちこちにいるので、減らす工夫をした方が良いように思います。
折角、変数 x に値をコピーしたのだから、チェック等も x で行い、最終的に求まった値をdocument.aaa.y.valueに戻してやるとか。
  function test() {
    var x = document.aaa.y.value;
    x++;
    if (x == 10) {
      x = 0;
    }
    document.aaa.y.value = x;
  }

また、変数 x を使わない、こんな方法もあります。
  function test() {
    if (++document.aaa.y.value == 10) {
      document.aaa.y.value = 0;
    }
  }
お礼コメント
tomo-nao

お礼率 93% (15/16)

パソコンの調子が悪くてお礼が遅くなってしまい申し訳ありません!!丁寧に答えて下さってどうもありがとうございます☆
x = document.aaa.y.valueとdocument.aaa.y.value = xって意味的に違うんですね!!勉強になりました。ほんとにどうもありがとうございました
投稿日時 - 2001-12-08 23:17:53
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ