2012-04-26 13 views
1

私は、javascriptとC++で同様のスニペットの違いを比較しようとしています。ここに私の抜粋です:なぜこのループがブラウザをクラッシュさせるのですか?

var i = 0; 

while (i<=10) 
{ 
    document.write('Hello<br />'); 
    //i++; 
} 
C++で

、私は同等のスニペットを書いた場合、私はJavaScriptを使用して、しかし、Ctrlキー+ Cを入力するまで、私はブラウザを開こうとするならば、永遠に並ぶコンソールプリントを思い出し、それクラッシュするだろう。私は強制的に終了するまで、 "Hello"行を永久にロードしようとするブラウザと関係がありますか?

答えて

5

C++のように、javascriptでプロセスを停止することはできません。

JavaScriptでは、ほとんどのブラウザではループ実行の回数が制限されていても、ほとんどのブラウザ(すべてではないにしても)がこれらのタイプのループでクラッシュします。

ただ、JS

0

には無限ループブラウザはおそらくクラッシュしないだろうが、それはあなたのスクリプトがゆがんで行っていたことを検出して、スクリプトを終了したい場合は、あなたを求めるだろう。いいえと答えると、それは永遠にループし、ブラウザを使用できなくします。

0

ブラウザは永遠にループします。ブラウザでjsの使用を停止するだけで、無限の反復を止めることができます。たとえばfirefoxで選択する(JavaScriptを無効にする)

ブラウザでJavaスクリプトを停止するには唯一の方法がありますが、それを行う方法はたくさんあります。