Heim  >  Artikel  >  Web-Frontend  >  Einführung in die Unterschiede zwischen den Javascript-Fähigkeiten „alert()“ und „console.log()“.

Einführung in die Unterschiede zwischen den Javascript-Fähigkeiten „alert()“ und „console.log()“.

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

Um es einfach auszudrücken: Alert ist eine Popup-Eingabeaufforderung und console.log ist ein Protokoll im Debugging-Tool. Im Folgenden finden Sie eine detaillierte Liste der Unterschiede zwischen Alert() und Console.log(),

[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 toString()-Methode in der Prototypenkette gibt alarm() und console.log() aus und erhält unterschiedliche Ergebnisse

<script type="text/javascript">
var a = [1,2,3];
alert(a); //1,2,3
Array.prototype.toString = function(){
  return 'str';
}
alert(a); //str
</script>

und

<script type="text/javascript">
var a = [1,2,3];
console.log(a); //[1,2,3]
Array.prototype.toString = function(){
  return 'str';
}
console.log(a); //[1,2,3]
</script>

Die Gründe, warum der obige Code unterschiedliche Ergebnisse ausgibt, sind folgende:

console.log() kann jede Art von Daten drucken. Und Alert() kann nur eine Zeichenfolge ausgeben. Wenn die Alarmausgabe ein Objekt ist, wird die Methode toString() automatisch aufgerufen. Wenn Sie möchten, dass die Ausgabe von console.log() mit der Warnung übereinstimmt, müssen Sie toString():

aufrufen

console.log(obj. toString() );

Es hat nichts damit zu tun, ob Sie toString() schreiben oder nicht. Das toString(), das Sie selbst schreiben, überschreibt lediglich die Standardmethode toString() des Objekts.

Wenn Sie die toString()-Methode nicht überschreiben, ruft alarm() auch die Standardmethode auf.

Immer noch derselbe Satz: console.log() kann jede Art von Daten ausgeben und wird aufgerufen, weil Sie toString() selbst überschrieben haben. Wenn log() nur Zeichenfolgen drucken kann, ist die Protokollmethode der Konsole nicht erforderlich.

Der Hauptgrund ist, dass die von den beiden Funktionen erwarteten Datentypen unterschiedlich sind. Der von alarm() erwartete Datentyp ist string. Dies entspricht der Verwendung des Objekts im Zeichenfolgenkontext, und die entsprechende Konvertierung wird natürlich durchgeführt. console.log() akzeptiert offensichtlich jede Art von Daten. Dann muss er nicht wechseln. Das heißt, es muss nicht im String-Kontext platziert werden. Dann ist OBJ natürlich sein ursprünglicher Datentyp.

Der obige Inhalt listet die Unterschiede zwischen warning() und console.log() auf. Freunde, die unterschiedliche Ideen haben, können gerne Vorschläge machen, diese mit allen teilen und gemeinsam lernen und Fortschritte machen.

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