Pour faire simple, alert est une invite contextuelle et console.log est un journal dans l'outil de débogage. Voici une liste détaillée des différences entre alert() et console.log(),
.[1]alerte()
[1.1] Cela a un effet bloquant. Si vous ne cliquez pas sur OK, le code suivant ne peut pas continuer à s'exécuter
.[1.2] alert() ne peut produire qu'une chaîne. Si la sortie d'alerte est un objet, la méthode toString() sera automatiquement appelée
par exemple alert([1,2,3]);//'1,2,3'
[1.3] l'alerte ne prend pas en charge l'écriture de plusieurs paramètres et ne peut afficher que la première valeur
par exemple alert(1,2,3);//1
[2]console.log()
[2.1] Sortie sur la station d'impression
[2.2] Peut imprimer tout type de données
par exemple console.log([1,2,3]);//[1,2,3]
[2.3] Prend en charge l'écriture de plusieurs paramètres
par exemple console.log(1,2,3)// 1 2 3
La méthode toString() dans la chaîne de prototypes génère alert() et console.log() et obtient des résultats différents
<script type="text/javascript"> var a = [1,2,3]; alert(a); //1,2,3 Array.prototype.toString = function(){ return 'str'; } alert(a); //str </script>
et
<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>
Les raisons pour lesquelles le code ci-dessus génère des résultats différents sont les suivantes :
console.log() peut imprimer tout type de données. Et alert() ne peut produire qu'une chaîne. Si la sortie d'alerte est un objet, la méthode toString() sera automatiquement appelée. Si vous souhaitez que le résultat de console.log() soit identique à alert, vous devez appeler toString() :
console.log(obj. toString() );
Cela n'a rien à voir avec le fait que vous écriviez ou non toString(). Le toString() que vous écrivez vous-même remplace simplement la méthode toString() par défaut de l'objet.
Si vous ne remplacez pas la méthode toString(), alert() appellera également celle par défaut.
Toujours la même phrase : console.log() peut imprimer n'importe quel type de données et sera appelé car vous avez vous-même remplacé toString(). Si log() ne peut imprimer que des chaînes, la méthode log de la console n'est pas nécessaire.
La raison principale est que les types de données attendus par les deux fonctions sont différents. Le type de données attendu par alert() est une chaîne. Cela équivaut à utiliser l'objet dans le contexte de chaîne, et la conversion correspondante sera naturellement effectuée. console.log() accepte évidemment tout type de données. Il n'est alors pas obligé de changer. Autrement dit, il n’est pas nécessaire de le placer dans le contexte d’une chaîne. Alors OBJ est naturellement son type de données initial.
Le contenu ci-dessus répertorie les différences entre alert() et console.log(). Les amis qui ont des idées différentes sont invités à proposer, à partager avec tout le monde, à apprendre et à progresser ensemble.