Maison  >  Article  >  interface Web  >  Quelles sont les différences entre es6 et es5

Quelles sont les différences entre es6 et es5

青灯夜游
青灯夜游original
2021-09-03 14:57:2424098parcourir

Différences : 1. es6 a une nouvelle fonction de flèche, pas es5 ; 2. ES6 a une nouvelle portée au niveau du bloc, es5 n'en a pas ; 3. ES6 introduit le concept de classe et n'utilise plus la chaîne de prototypes pour l'implémenter. héritage comme ES5;4. , Les paramètres de fonction par défaut peuvent être définis dans ES6, mais pas dans es5. La fonctionnalité de promesse est ajoutée dans ES6 ;

Quelles sont les différences entre es6 et es5

L'environnement d'exploitation de ce tutoriel : système Windows7, ECMAScript 5&&ECMAScript version 6, ordinateur Dell G3.

Par rapport à ES5, ES6 a ajouté de nombreuses nouveautés, telles que :

1. Nouvelle fonction flèche

Les problèmes résolus par la fonction flèche

  • simplifient l'écriture. Les fonctions fléchées conviennent lorsque le corps de la fonction ne comporte qu'une seule ligne ; lorsqu'il y a plusieurs lignes, les fonctions ordinaires peuvent être utilisées pour augmenter la lisibilité. Moins de codage, structure claire

  • Expliquez cela clairement. Le this du JS traditionnel est déterminé au moment de l'exécution, pas lors de la définition ; tandis que le this des fonctions fléchées est déterminé lors de la définition et ne peut pas être modifié, ni par des méthodes telles que l'appel, l'application et la liaison. H Sely, lors de l'exécution, ce point est de déterminer que this n'a pas besoin d'être exécuté. Remarque : la fonction flèche n'a pas son propre this, c'est le this dans la couche externe, et le This who est une fonction qui est. pas une fonction de la fonction flèche. En raison du mécanisme de js, il pointe vers la portée d'une fonction qui n'est pas une fonction fléchée.

    La différence entre les fonctions fléchées et les fonctions ordinaires

La déclaration des fonctions ordinaires est la plus élevée en levage variable, les fonctions fléchées n'ont pas de fonction de levage

  • les fonctions fléchées n'en ont pas Si vous n'avez pas this

  • , l'objet this à l'intérieur du corps de la fonction est l'objet où il est défini plutôt que l'objet où il est utilisé
  • La fonction flèche n'a pas d'objet arguments Cet objet n'a pas. existe dans le corps de la fonction Si vous souhaitez l'utiliser, vous pouvez utiliser le paramètre rest

  • La fonction Flèche ne peut pas être utilisée comme constructeur, ne peut pas être nouvelle, n'a aucune propriété

  • appeler et appliquer. ​​les méthodes n'ont que des paramètres et aucune portée

  • ne peuvent pas utiliser la commande rendement, donc la fonction flèche ne peut pas faire fonctionner le générateur

  • 2. Portée au niveau du bloc

Le let La commande dans ES6 déclare les variables. L'utilisation est similaire à var, mais let ajoute une nouvelle portée au niveau du bloc à JavaScript. Dans ES5, il n'y a pas de portée au niveau du bloc et var a le concept de promotion de variable, mais dans let, les variables. utilisé doit être déclaré ; const déclare les constantes

    Affectation structurelle des variables dans ES6, telles que : var [a,b,c] = [0,1,2];
  • 3.

ES6 n'utilise plus la chaîne de prototypes pour implémenter l'héritage comme ES5, mais introduit le concept de classe, qui ressemble à Java. La syntaxe de la programmation orientée objet est quelque peu similaire, mais les deux sont différents.

4. Définir les paramètres de fonction par défaut

Dans ES6, vous pouvez définir les paramètres de fonction par défaut, tels que la fonction A (x, y=9) {}

5. promesse

promesse ; arrière-plan de génération : résolvez le problème de l'enfer des rappels et gérez les requêtes asynchrones

utilisation de la promesse : appels en chaîne, rappels de réussite et d'échec, trois états, déclenchés lorsque l'état en attente change. Une fois le statut modifié, il ne changera plus.

6. Chaîne de modèle

7. Structure des affectations

[Apprentissage recommandé :

Tutoriel avancé javascript]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn