質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1346閲覧

alertがあるとループしない理由を教えてください。

kinsncn

総合スコア34

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/05/06 13:03

下記codeにおいて、alertがないと0,1,2,3,4が出力されますが、
alertが有効になると、0しか出力しない理由を教えてください。
(OKを何回押しても0しか出力しないです)

var i = 0; while (i < 5){ // alert("i = " + i); console.log(i); i++; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/05/06 13:09

Firefoxの開発者コンソールでやってみましたがちゃんとカウントアップされました。
kinsncn

2020/05/06 13:12

ご確認ありがとうございました。 私は、JS Binで確認して、投稿しましたが、ご指摘後、Chromeで確認しら、問題なかったです。 大変失礼しました。 以上 よろしくお願いいたします。
gentaro

2020/05/06 13:17

WEB実行環境なんでウィンドウが出た時点でスクリプトの実行を停止してるのかもしれませんねぇ。 とりあえず問題がないようなら自己解決として、回答を作成してクローズしてください。
Zuishin

2020/05/06 13:17

JS Bin でやってみましたが、カウントアップします。他の部分でリセットしているのでは? 全体を載せてみてください。
gentaro

2020/05/06 13:22

試してみたら、JS BinのConsoleでやればちゃんとカウントアップしますが、JS Binのトップページから「JavaScript」のボタンを押して表示されたタブに入力すると0で止まりますね。
AkitoshiManabe

2020/05/06 13:26 編集

alertのダイアログ繰り返して表示される際、【Edge/IE】「このページにこれ以上メッセージの作成を許可しない」、【Chrome】「このページで追加のダイアログが作成されないようにする」、【Firefox】「このページによる追加のダイアログ表示を抑止する」にチェックを入れませんでしたか?もしチェックしたのであれば、ブラウザを再起動して「いいえ」を選んでみてください。
kinsncn

2020/05/06 13:27

今日初めて、JS binを使いまして、うまく説明ができないですが、Javascriptのコードは上に書いたものが全部です。 HTMLは JS Binのデフォルトそのまま使っています。cssはありません。 (関係ないと思いましが、下に載せます。) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> </body> </html>
kinsncn

2020/05/06 13:31

@gentaroさん、ご指摘通りだと思います。 「JavaScript」のボタンを押してconsole.logを実行しました。 ありがとうございました。
think49

2020/05/06 13:46

@AkitoshiManabe さん 私がGoogle Chrome v81.0.4044.138で検証した限りでは、アラートダイアログにそのチェックボックスはなかったのですが、そういう問題なのでしょうか。 https://jsbin.com/necuyequxu/edit?js,console,output
gentaro

2020/05/06 13:48

@kinsncn さん こういう事もありえるんで、質問する際は実行環境とかちゃんと書いた方が良いです。
AkitoshiManabe

2020/05/06 14:14

think49 さん、ご指摘ありがとうございます。「はい」を選ぶとダイアログ自体表示されなくなりますね。
guest

回答1

0

ベストアンサー

window.alert()

window.alert はアラートダイアログを閉じるまで、以降のコード実行を停止します

JavaScript

1var i = 0; 2 3while (i < 5){ 4 alert("i = " + i); 5 console.log(i); 6 i++; 7}

従って、初回のアラートダイアログを閉じるまではループ処理が停止するのが通常の動作です。

JSBin

私は、JS Binで確認して、投稿しましたが、ご指摘後、Chromeで確認しら、問題なかったです。

私の環境(Google Chrome v81.0.4044.138)では、次の動作でした。

  1. 「i = 0」のアラートダイアログ出現 -> [OK] 押下
  2. JSBinのConsole: 0
  3. Chrome Developper Toolsのコンソール: 0

JSBinは「alert()を含んだコード」を正しく実行できないようですね…。

Re: kinsncn さん

投稿2020/05/06 13:11

編集2020/05/06 13:48
think49

総合スコア18189

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2020/05/06 13:12

> (OKを何回押しても0しか出力しないです) こちらを読み逃していました。
kinsncn

2020/05/06 13:15 編集

ご指摘ありがとうございました。 Chromeでは、問題なかったです。 以上 よろしくお願いいたします。
think49

2020/05/06 13:18

現象を再現可能なコードとブラウザを明らかにして下さい。 jsbinでも構いません。
gentaro

2020/05/06 13:26

@think49 さん コメ欄ご確認ください。
think49

2020/05/06 13:39

@gentaro さん 状況把握しましたので、親記事に追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問