• 締切済み

JavaScript初心者です

今JavaScriptを勉強しています 参考書の一文に下の表記が出てきました。 window.alert("x="+x+" y=" +y); この+x+と+yの違いはなぜでしょうか? +y+ でも良い様な感じがしますが書き直してみると上手く作動しません。

みんなの回答

  • sholmes
  • ベストアンサー率81% (89/109)
回答No.2

+x+っていう書き方が分かりづらいのかもしれませんね・・・ あくまで、 A + B が繰り返されていると捉えれば良いでしょう 最後だけくっつける対象がないよと あとは、結合順があくまで左からであることに注意してください http://ideone.com/xstCl

  • t_ohta
  • ベストアンサー率38% (5083/13283)
回答No.1

+の意味は足し算です。 文字列の足し算は、文字列の結合として扱われます。 "x="+x+" y=" +y の意味は、x= という文字列に変数 x の値を結合し、更に y= という文字列に変数 y の値を結合し、一つの文字列を形成しています。 変数 y の後ろに + を付けると言うことは更に文字列の結合を行うか変数 y に何らかの値を加算するという意味になります。 その場合、変数yに結合もしくは加算する値を記述しなければ、構文エラーになります。

関連するQ&A

  • 教えてください。javascriptで困っています

    javascript初心者です。たくさんある変数をfor文を使って計算させたいと思っています。計算はfor分の中でしたいのですが、うまくいきません。以下のようなことをしたいのですが。evalなどを使うのでしょうか。調べるキーワードがわからなかったので、投稿させていただきました。教えてください。よろしくお願いします。 var x1=1; var x2=2; var x3=3; var x4=4; var x5=5; var y1=1; var y2=2; var y3=3; var y4=4; var y5=5; var z1; var z2; var z3; var z4; var z5; for(var i=0 i<5 i++){ "z"+i = "x"+i + "y"+i; } alert(z1); alert(z2); alert(z3); alert(z4); alert(z5);

  • Javascriptについて質問です。

    Javascriptについて質問です。 いまJavascriptを勉強しているのですがどうしても分からない所が出てきましたので是非ご教授願います。 教材を買ってきて勉強しているのですが、そこに載っているのものでこういった問題が書かれていました。    ↓ 以下のコードを分析して、アラートボックスに表示される値を書いてください。 function doThis(num){ num++; return num; } function doThat(num){ num--; return num; } var x=doThis(11); var y=doThat; var z=doThat(x); x=y(z); y=x; alert(doThat(z-y)); そこで分からなかったので答えを見てみるとこう書かれていました。 var x=doThis(11);          var y=doThat; var z=doThat(x); x=y(z); y=x; alert(doThat(z-y)); ↓↓ x=12 y=doThat z=doThat(12)=11 x=doThat(11)=10 y=10 alert(doThat(11-10)) 答え 0 そこでお聞きしたいのですが、まず 1、 右上のx=12というのはdoThis(11)はnum++があるから1足して12になった、という解釈でよいのでしょうか? 2、z=doThat(12)=11 の(12)は、xが12だからなのでしょうか?そして=11は、doThatがnum--だから1引かれて=11になるってことでしょうか? 3、ここからが本当にさっぱり分かりません。。x=y(z);はなぜx=doThat(11)=10になるのでしょうか?y(z)の(z)はdoThat(12)=11で、xは12なのでしょうか?なぜそれx=doThat(11)=10 になるんでしょうか? 4、y=10は、xがdoThat(11)=10だからそこの10が入ってるのでしょうか? 5、alert(doThat(11-10))でなぜ答えが0になるんでしょうか?なぜ11-10なのに1にならないんでしょうか? 分かりずらい質問の仕方で本当にすみません! 頭が混乱してしまって。。 それとreturnというのは関数からデータを返す、というのはなんとなくですが分かるのですが(でもたぶん分かってないです)ここではreturnはどんな働きをしてるのでしょうか? 色々サイトなど探して調べてはいるのですが、なかなか僕の頭も悪いと思うのですが難しくて理解できません。 もしお時間ありましたら、どなたか分かりやすく説明してもらえないでしょうか? returnの意味だけでもいいです。 すみませんよろしくお願いします!!

  • Javascript初心者です。

    Javascript初心者です。 どうしてもわからなくて困っています。 下の図のように1から、最大10個の☆をalertで表示させるものをつくったのですが ☆ ☆☆ ☆☆☆ ☆☆☆☆ ~ ☆☆☆☆☆☆☆☆☆☆ for(var i = 1; i <= 10; i++){ //alert("☆"); var star = ""; for(var j = 1; j <= i; j++){ star += "☆"; }     alert(star); } これを用いた2つの応用問題に苦戦しています。 (1)偶数の場合は★のみで表示 ☆ ★★ ☆☆☆ ★★★★ ~ ★★★★★★★★★★ (2)偶数の番号の☆マークが★に ☆ ☆★ ☆★☆ ☆★☆★ ~ ☆★☆★☆★☆★☆★ といったものです。説明がわかりづらいかもしれませんが、 偶数、奇数をif文で条件分岐することは理解しているのですが、 web上で調べてもわからず、ループの階層構造がイメージできないまま苦戦しています。 どなたか宜しくお願い致します。

  • JavaScriptについて

    JavaScriptを使っています。 http://www.scollabo.com/banban/jsindex/sample/sample_004.html このサイトを参考にしていて、上記のページでalert メソッドを調べていたら、 windowオブジェクトのメソッドという使い方は理解でき ましたが、 Formオブジェクトのメソッドとしての使い方が不明です。 Formオブジェクトではどのように使うのでしょうか? 教えてください。

  • JavaScriptのコードの間違いを教えて

    いつもお世話になっております。 現在、JavaScriptの勉強をしているのですが、if構文のところでつまずいてしまいした。 下のコードがうまく実行できません。 間違いを指摘して頂ければと思います。 <doctype! html> <html lang="ja"> <head>    <meta charset="UTF-8">    <title>Javascript</title> </head> <body> <script type="text/javascript">    var x = window.prompt("好きな値を入力してください","100");    if (x>100)       {window.document.write("100より大きいです");}    else {if(x<100))       {window.document.write("100より小さいです");}       else {if(x=100))          {window.document.write("100です");}       }    } </script> </body> </html> なお、テキストエディタで記述し、実行はGoogleChromeで行いました。 よろしくお願いします。

  • javascriptで画面を閉じる

    javascriptの画面を確認ダイアログでOKの時、閉じる処理の実装をどのようにするか考えています function back(){ if( confirm("入力内容は保存されませんがよろしいですか?")){ alert("OKが押されました"); window.close(); } else{ alert("キャンセルが押されました"); } } <div id="button"> <input type="button" name = "back" onClick="back()" value="戻る" /> </div> こんな感じに書いているのですが、[window.close();]が実行されません alertの部分はOKもキャンセルも呼ばれるのですが閉じる処理が呼ばれません 調べてwindow.close()で画面を閉じることができるというのは見つけたのですがそもそも使い方が 間違っているような気がします。 どの点が間違っているか、解決方法をお願いします。

  • Javascriptの質問です。

    Javascriptの質問です。 昨日からjavascriptを始めた初心者なのですが、すみませんが、以下のコードの不具合の訂正をお願いしたいのです。自分なりにあれこれやっては見ましたが、結論が見出せません。 昨日は、id="BOX" の部分を、windowをリサイズしたときに、縦横常に中央に表示させるといったものです。 問題点: (1)windowをリサイズたときに、動かない点 (2)DOCTYPE宣言すると、まったく機能しない。(DOCTYOE宣言とJAVASCRIPTの対応が理解できていないので。。とりあえず、DOCTYPE宣言無しでも機能すればいいかな?と思っております。IE8とfirefox3での表示を目指しています。) 恐れ入りますがよろしくお願いいたします。 ■HTML <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> <link href="css/test1.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> <!-- function changeStyle(y,x) { /*変数トレース*/ document.write("関数CALL\n"); document.write(y+"/"); document.write(x); /*CSSの書き換え(CSS)を書き換えると位置をへんこうできるものと思っています。*/ document.getElementById("box").style.marginTop = y; document.getElementById("box").style.marginLeft = x; } // --> </script> <script type="text/javascript"> <!-- function relocate() { window.focus(); /*firefoxのwindowサイズとboxの大きさによりマージンを計算*/ if( 0 != window.innerHeight && window.innerHeight > 960){ y=((window.innerHeight - 960)/2); }else{y=0;} /*IEのwindowサイズとboxの大きさによりマージンを計算*/ if( 0 != window.innerWidth && window.innerHeight >1100){ x=((window.innerWidth - 1100)/2); }else{x=0;} /**/ if( 0 != document.body.clientHeight && document.body.clientHeight > 960){ y=((document.body.clientHeight - 960)/2); }else{y=0;} if(0 != document.body.clientWidth && document.body.clientWidth > 1100){ x=((document.body.clientWidth - 1100)/2); }else{x=0;} /*CSSの変更*/ changeStyle(y,x); } //--> </script> </head> <body onResize="relocate()"> <!-- イベントハンドラセット(リサイズ時にCSS変更)こちらが問題のようです。 --> <div id="box">123456</div> <!-- 目的のボックス--> <script type="text/javascript"> <!-- /*オンロード時に1度CSSを変更する。もちらは動作します。*/ relocate(); // --> </script> </body> </html> ■CSS @charset "utf-8"; /* CSS Document */ *{ margin: 0px; padding: 0px; } #box { background-color: #FF3300; height: 960px; width: 1100px; border: 100px none #999999; margin-top:0px; margin-left:0px; } よろしくお願いします。

  • VBかjavascriptで作成したのですがどうもうまくいきません。

    作りたい物は、何時になったらイベントを発生させるという物なのですが、動くんですが違和感?みたな感じがします。 例 現在時刻7:00→メッセージボックスで『朝です!』 現在時刻12:00→メッセージボックスで『お昼です!』 現在時刻19:00→メッセージボックスで『夜です!』 のような感じでつくりたいです。 javascriptでは作ったのですが、同じスクリプトをイベントごと記入したので、とてもごみごみしてしまいました。あと、window.alertを使って表示させたのですが、他の作業をしているときはalertに全く気付きません。 alertを最上位に出すほうほうありませんでしょうか? しかし、javascriptだとごみごみしがちなので、VBで作ろうかという感じなのですが、少しかじった程度なので、タイマーとか基礎の部分しか知りません。 よかったらVBで作ってくださいww よろしくお願いします☆

  • 初心者なのですが教えてください。

    HTMLの中にJavaScriptを用いて 初めてプログラムを作ってみました。 ある画像があり、カーソルを動かすとx、y座標を表示させる プログラムを作りました。 今回これを改良したいのです。 画像の中に、人の絵がありまして、その人のところに カーソルを持っていくと画面にその人の名前が表示されるようにしたいです。 たとえばx、yの座標、共に(200、200)の所に その人物の中心があるとすれば、その前後±50ぐらいの範囲で この名前が表示されるようにしたいです。 まだまだ未熟で分からないことだらけなので、どなたか分かる方 ご指導ください。ヨロシクお願いします。 <html> <head> <title>情報収集</title> </head> <body> <script type="text/javascript"> window.document.onmousemove = getMouseXY; function getMouseXY(evt){ // x,yとpageX,Y if (window.createPopup){ x = event.x + document.body.scrollLeft; y = event.y + document.body.scrollTop; } else{ x = evt.pageX; y = evt.pageY; } document.getElementById("result1").innerHTML = "(x,y) = "+x + ", "+y; // offsetX,YとlayerX,Y if (document.all){ cx = event.offsetX; cy = event.offsetY; } else{ cx = evt.layerX; cy = evt.layerY; } document.getElementById("result2").innerHTML = "(offsetX,offsetY) = "+cx + ", "+cy; } </script> <IMG src="q600.jpg" name="img1"> <br> <div id="result1"></div> <div id="result2"></div> <script type="text/javascript"> function eve1(e){ window.status="[ 座標位置 ] : "+"( x , y ) = "+"( "+x+" , "+y+" )"; return true; } document.onmousedown = eve1; </script> <script type="text/javascript"> function openWindow1(){ window.open("serv.html","OpenWindow","screenX=20,screenY=50,left=20,top=50,width=160,height=240"); } document.ondblclick=openWindow1(); </script> </body> </html>

  • JavaScriptでマウス位置をリアルタイムで取得

    ウィンドウを開いたら、マウス位置をリアルタイムで取得し、ウィンドウ上に表示ということをしたいのですが、まったくわかりません。 function mousecursor(evt){ //関数の定義 X = event.x; //イベント発生場所のX座標取得 Y = event.y; //イベント発生場所のY座標取得 window.status = X + "," + Y;} //ステータスバーに表示 document.onmousemove = mousecursor; //マウスカーソルが動いたら、関数を呼び出す。(bodyタグで呼び出しも可) というようなソースを手に入れたのでやってみたら、できることはできたんですが、なんとなくしか意味がわかってません。 HTMLやPerl、VBAなどはできるんですが、どうしてもJavaScriptがあんまり理解できないんです…。 リアルタイムで取得し、表示、ということではなくても、自分の任意したように出力させたいんです。 (たとえばどこかをクリックしたらアラート表示など) よろしくお願いします。

専門家に質問してみよう