ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptのalert()とconsole.log()の違い

JavaScriptのalert()とconsole.log()の違い

高洛峰
高洛峰オリジナル
2017-02-03 14:45:191709ブラウズ

[1]alert()

[1.1] [OK] をクリックしないと、後続のコードは実行を続行できません。

[1.2] アラート出力の場合、alert() は文字列を出力することしかできません。がオブジェクトの場合、 toString() メソッド

例:alert( 1,2,3);//1

[2]console.log()

[2.1]プリントステーションで出力

[2.2] 任意のタイプのデータを出力できます

例: console.log([1, 2,3]);//[1,2,3]

[2.3] 複数のパラメータの書き込みをサポートします

例: console. log(1,2,3)// 1 2 3

ログの結果が違う?

score = [1,2,3];
sortedScore = [];
console.log(score);
sortedScore = score.sort(sortNumber)
console.log(sortedScore);
function sortNumber(a, b) {
  return b - a;
}

上記の出力:

[3, 2, 1]

[3, 2, 1]

ただし、アラートに変更します:

score = [1,2,3];
sortedScore = [];
alert(score);
sortedScore = score.sort(sortNumber)
alert(sortedScore);
function sortNumber(a, b) {
  return b - a;
}

上記の出力:

1, 2, 3

3 、2、1

これはなぜですか?それらはすべて、
1、2、3
3、2、1

であるべきではないでしょうか?


いくつかの調査の結果、出力に不適切な最適化を行って、配列などの参照型が発生したときの「遅延」評価に相当する実際の実行を延期したことが原因であることがわかりました。とオブジェクトの場合、上記の問題が発生しました。

https://bugs.webkit.org/show_bug.cgi?id=35801

これは非常に歴史的なバグで、先月の開発バージョンで修正されました。


JavaScriptのalert()とconsole.log()の違いに関連するその他の記事については、PHP中国語Webサイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。