Maison >interface Web >js tutoriel >La différence entre alert() et console.log() en javascript
[1]alert()
[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 alert Le résultat est que l'objet appellera automatiquement la méthode toString()
par exemple alert([1,2,3]);//'1,2,3'
[1.3] l'alerte n'est pas prise en charge Lors de l'écriture de plusieurs paramètres, seule la première valeur peut être générée
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
alerte et console Le résultat du log est différent ?
score = [1,2,3]; sortedScore = []; console.log(score); sortedScore = score.sort(sortNumber) console.log(sortedScore); function sortNumber(a, b) { return b - a; }
Le résultat ci-dessus :
[3, 2, 1]
[3, 2, 1]
Mais changez-le en alerte :
score = [1,2,3]; sortedScore = []; alert(score); sortedScore = score.sort(sortNumber) alert(sortedScore); function sortNumber(a, b) { return b - a; }
Le résultat ci-dessus :
1, 2, 3
3, 2, 1
Pourquoi est-ce ? Ne devraient-ils pas tous être :
1, 2, 3
3, 2, 1
?
Après quelques recherches, il a été constaté qu'il s'agissait d'un problème avec l'implémentation de Chrome. Nous avons effectué des optimisations inappropriées pour la sortie et reporté l'exécution réelle de console.log, ce qui équivaut à une évaluation "paresseuse". tableaux et objets, ce Le type de référence provoque le problème ci-dessus.
https://bugs.webkit.org/show_bug.cgi?id=35801
Il s'agit d'un BUG très historique, qui a été corrigé dans la version de développement le mois dernier .
Pour plus d'articles sur la différence entre alert() et console.log() en javascript, veuillez faire attention au site Web PHP chinois !