• ベストアンサー

for文の中の余計な(?)括弧の意味を教えて下さい

・下記のようなコードがありました for(var j = 0;j < 8;++j){  {   console.log(j);  } } ・下記とは何が異なるのでしょうか? for(var j = 0;j < 8;++j){  console.log(j); } ・JavaScript(ECMAScript)では、括弧を幾つ設定しても良いのでしょうか? for(var j = 0;j < 8;++j){  {{{{{{{{{{{ console.log(j);  }}}}}}}}}}} }

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

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

括弧というか、ブロックです。 letで宣言した変数はブロックスコープなのでそのブロックの中でのみ使えます。

re97
質問者

お礼

回答ありがとうございましたー

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

たぶん、すべて同じ意味だと思います。 ていうか、本当にそうかどうかは、 質問者さんのところで各々を動かしてみて、 同じ結果になるかどうかで判断できると思います。

re97
質問者

お礼

回答ありがとうございましたー

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • javascript if文

    javascript if文 まずソースコードなのですが var num; var sign; num = 20; (1)sign = num >= 0 ? '正' : '負'; console.log( num + "は" + sign ); (2)if(num >= 0){ console.log( num + "は" + sign ); } (1)と(2)は同じ意味なのですか?(1)のやり方はあまり見かけないのですが用途としてはどのような時に使うのですか? 馬鹿な質問でスミマセン。

  • Javascript について質問です

    Javascriptで下記のような文章を書きました。 for(var i=0;i<3;i++){ console.log("T"); }; i=0; while(i==2){ console.log("i=0です"); i++; }; なんで実行結果に、0が入るのでしょうか? またwhile文についてですが、実行されておりません。条件式をi<2にしたら動きました。 理由が分からないので、教えてください。 実行結果 T T T 0

  • onclickの中のvar i

    天才のプログラマーの皆様に質問です。 要素にonclickイベントを設定したいのですが、下記のコードの問題の行★★★について ご説明をいただけないでしょうか? htmlファイル---------------------------- <input type="button" id="card_0" value="?"> <input type="button" id="card_1" value="?"> <input type="button" id="card_2" value="?"> <input type="button" id="card_3" value="?"> jsファイル------------------------ var el=document.getElementsByTagName("input"); for(var i=0;i<el.length;i++){ console.log(i); // 0,1,2,3 el[i].onclick=function(){ flip(this.id.replace(/^card_/,"")); //関数を設定  正しく設定されている console.log(this.id.replace(/^card_/,"")); // 0,1,2,3 console.log(i); //★★★ 0,1,2,3ではなく、なぜか4が表示されてしまう flip(i)では動作しない flip(this.id.re...略)のthisはel[i]でも動作しません }; } function flip(n){ 略 }

  • console.logでインクリメントのタイミング

    下記で、hogeはなぜ2にならないのでしょうか? var hoge=1; console.log(hoge++); ・再度試せば2になるのですが、 var hoge=1; console.log(hoge++); console.log(hoge); ・引数指定しているのに、どうして一旦処理が終わった後に走るのか理解できません console.log(hoge++); ・色々試してみたのですが、どれも1です var hoge=1; console.log((hoge++)); var hoge=1; console.log((hoge)++); 後ろに++付けたときの挙動について教えてください

  • 入れ子になったfor文の初期化式について

    javascriptを勉強中の初心者です。 以下のスクリプトを見てください。 document.write("<p>"); outloop: for (var i = 1; i < 5; i++){ for (var j = 1; j < 5; j++){ document.write(i + " × " + j + " = " + (i * j) + "<br />"); if (i * j > 10){ break outloop; } } } document.write("</p>"); 5未満の数同士の乗算の結果を順に表示し 乗算の結果が10を超えたら外のループを抜けるというスクリプトです。 for文がこのように入れ子になっている場合、 内側のループが二週になるとjはまた初期化されて1になるのでしょうか? 手持ちの参考書にあるfor文の説明では『初期化式は初めの一回だけ実行される』とあります。 内側のループが二回目以降の時、参考書のいう『初めの一回』になると考えていいのでしょうか。 初歩的な質問で恐縮ですが、ご存知の方どうか教えてください。 よろしくお願いいたします。

  • Javascript について質問です

    var tired=true; var bored=false; var nap = function() { if(tired || bored){ console.log("OK"); } else{ console.log("else"); } }; 上記のコードを書いた際、下記の実行結果となり、OKが表示されません。 どなたか原因が分かる方がおりましたら、教えてください。 else

  • JavaScriptの問題に関して教えてください。

    下記問題の解き方および答えが考えても全然分からず、お教えいただきたいです。お願いいたします。 以下のプログラムを読んで、どういったプログラムなのかを説明してください。 let change = 0; let change_sum = 0; const data = [ 31, 41, 59, 26, 53, 58, 97, 93, 23, 84 ]; console.log("並べ替える前"); for (let i = 0; i < data.length; i++) { console.log(data[i] + " "); }// for console.log("\n"); console.log("***********************************"); console.log(""); for (let i = 0; i < data.length - 1; i++) { for (let j = i + 1; j < data.length; j++) { if (data[i] > data[j]) { let a = data[i]; data[i] = data[j]; data[j] = a; change++; }// if }// for(内側1) console.log((i + 1) + "回目"); console.log(`${change}回`); for (let k = 0; k < data.length; k++) { process.stdout.write(data[k] + " "); }// for(内側2) console.log("\n"); change_sum += change; change = 0; }// for(外側) //最終結果の表示 console.log("***********************************"); console.log(""); console.log(`${change_sum}回`); console.log("最終結果"); for (let i = 0; i < data.length; i++) { process.stdout.write(data[i] + " "); }// for console.log("");

  • console.logについて

    console.logについて ●質問の主旨 下記のjavascriptコードで、trueを4回、faluse2回を 出力させたいと考えています。 ところが、 ReferenceError: Invalid left-hand side in assignment というエラーが出て、出力できません。 左辺がおかしいというメッセージは読み取れますが、 それ以上どこが悪いのかよく分かりません。 こちらの意図通り実行させるためには、 どのようにコードを訂正すればよいでしょうか? ご存知のかたよろしくお願いします。 ●コード console.log(15) > 4; console.log("Xiao Hui".length) < 122; console.log("Goody Donaldson".length) > 8; console.log(8*2) = 16; console.log("echizenya_yota".length = 10); console.log("echizenya_yota".length < 10);

  • FireFox正規表現のstickyフラグの意味

    FireFox3から、正規表現にstickyフラグなるものが追加されました。この有用性がわかりません。 MDNではサンプルが示されていますが、そのサンプルのフラグを「g」フラグに書き換えても挙動は全く同じであり、有用性の説明にはなっていないものと思われます。仮に正規表現のパターンが「/^(\S+) line\n?/」だったとしても「mg」フラグ時と変わりません。 yフラグはmgフラグ指定時と全く同じなのでしょうか。違う部分があるのでしょうか?もし違う部分があるのならyフラグの意味や、mgフラグとの違い・有用性がわかるサンプルを教えてください。 よろしくお願いします。 RegExp - JavaScript | MDN https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/RegExp var text = "First line\nsecond line"; var regex = /(\S+) line\n?/y; var match = regex.exec(text); console.log(match[1]); // "First" を出力します console.log(regex.lastIndex); // 11 を出力します var match2 = regex.exec(text); console.log(match2[1]); // "Second" を出力します console.log(regex.lastIndex); // "22" を出力します var match3 = regex.exec(text); console.log(match3 === null); // "true" を出力します ※「print」は明らかなミスだと思われるため「console.log」に書き換えています。

  • linuxのfor文についてです。

    linuxのfor文(C言語風)を利用して/var/log/httpd/にあるaccess.logのファイルのうち130301~130309のものをls -lで情報を表示したいです。 ここでbashのfor文を使って最後の1文字だけを変化させながらls -lを9回実行するシェルスクリプトを作りたいのですがどのように書いたら良いのかわかりません。 どなたか教えていただけないでしょうか。