Heim  >  Artikel  >  Web-Frontend  >  Der Unterschied zwischen alarm() und console.log() in den Javascript_Javascript-Fähigkeiten

Der Unterschied zwischen alarm() und console.log() in den Javascript_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:42:471259Durchsuche

[1]alert()

[1.1] Es hat eine blockierende Wirkung, wenn Sie nicht auf OK klicken, kann nachfolgender Code nicht weiter ausgeführt werden

[1.2] alarm() kann nur einen String ausgeben. Wenn die Alarmausgabe ein Objekt ist, wird die toString()-Methode automatisch aufgerufen

z. B. warning([1,2,3]);//'1,2,3'

[1.3] Warnung unterstützt nicht das Schreiben mehrerer Parameter und kann nur den ersten Wert ausgeben

z. B. warning(1,2,3);//1

[2]console.log()

[2.1] Ausgabe auf der Druckstation

[2.2] Kann jede Art von Daten drucken

z. B. console.log([1,2,3]);//[1,2,3]

[2.3] Unterstützt das Schreiben mehrerer Parameter

z. B. console.log(1,2,3)// 1 2 3

Die Ergebnisse von Alert und console.log sind unterschiedlich?

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

Die obige Ausgabe:
[3, 2, 1]
[3, 2, 1]

Aber ändern Sie es in Warnung:

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

Die obige Ausgabe:
1, 2, 3
3, 2, 1

Warum passiert das? Es sollte nicht alles sein:
1, 2, 3
3, 2, 1
?

Nach einigen Recherchen wurde festgestellt, dass es sich um ein Problem mit der Chrome-Implementierung handelte. Wir haben unangemessene Optimierungen für die Ausgabe vorgenommen und die tatsächliche Ausführung von console.log verschoben, was einer „verzögerten“ Auswertung entspricht, wenn auf Referenztypen wie z. B. gestoßen wird Arrays und Objekte treten auf.

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

Dies ist ein sehr historischer Fehler, der letzten Monat in der Entwicklungsversion behoben wurde.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn