[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] warning(). kann nur eine Zeichenfolge ausgeben. Wenn die Ausgabe erfolgt, ruft das Objekt automatisch die toString()-Methode auf, z. B. warning([1,2,3]);//'1,2,3'
[1.3] Alert wird nicht unterstützt. Beim Schreiben mehrerer Parameter kann nur der erste Wert ausgegeben werden
z. B. Alert(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
Alarm und Konsole Das Ergebnis des Protokolls ist 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 sie in „Alert“. :
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, 33, 2, 1
Warum ist das so? Sollten sie nicht alle sein:
3, 2, 1
?
Nach einigen Recherchen wurde festgestellt, dass es sich um ein von Chrome implementiertes Problem handelte. Wir haben unangemessene Optimierungen für die Ausgabe vorgenommen und die tatsächliche Ausführung von console.log verschoben, was einer „faulen“ Auswertung entspricht Arrays und Objekte, dieser Referenztyp verursacht das oben genannte Problem.
https://bugs.webkit.org/show_bug.cgi?id=35801
Dies ist ein sehr historischer FEHLER, der letzten Monat in der Entwicklungsversion behoben wurde .
Weitere Artikel zum Unterschied zwischen alarm() und console.log() in JavaScript finden Sie auf der chinesischen PHP-Website!