Quelles sont les principales différences entre JavaScript et ActionScript 3?
Je sais que les deux langues sont de la même norme ECMA-262. Il semble que les deux sont en train de devenir très similaire avec JavaScript ajouter des écouteurs d'événement pour les principales instances de l'Objet à l'aide de méthodes comme freeze
et seal
dans EMCAScript-262 5e édition, par exemple. Je me demandais quelles sont les différences?
- Pas vraiment la même norme. 3 est à partir de l'morts ECMAScript 4 (un.k.un. Javascript 2.0), et le Javascript que nous voyons aujourd'hui est la plupart du temps à partir de ECMAScript 3.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord ActionScript 3 et JavaScript sont tous les deux définis dans ECMA-262 de sorte qu'ils ont beaucoup en commun. Les deux langues en fonction de prototype de l'héritage par exemple. Il n'est cependant pas correct que l'ActionScript met pleinement en œuvre ES4.
ActionScript met en œuvre un couple de caractéristiques qui ne sont pas définis dans ECMA-262 et certaines, mais certainement pas tous) de l'ES4.
Donc, ce n'est AS3 ajouter ECMA-262? Ce sont aussi les différences de JavaScript:
J'ai peut-être oublié certaines fonctionnalités. Je ne suis pas sûr si XML, XMLList etc. sont déjà définies dans 262 ou est venu avec 357.
La principale différence, cependant, est la bibliothèque standard. JavaScript est livré avec un couple de classes prédéfinies comme DOMElement et navigateur dépendante des ajouts. ActionScript a une assez grande bibliothèque standard avec des fonctionnalités telles que le streaming vidéo et est compatible sur toutes les plateformes.
i=[0],a=new Set; !function m(O){ if(O){ a.add(O)&&i[0]++; for(let k of Object.getOwnPropertyNames(O))try{ !atob[k] && typeof(k=O[k])==typeof m && m(k.prototype)}catch{} m(O.__proto__ )} }(self); i[0]
dans la console sur example.com les rendements 1991 différentes méthodes de l'API Javascript a par défaut (plus quelques gecko-des caractéristiques spécifiques).J'ai été la programmation en ActionScript et Javascript, et à partir d'un point de vue technique, je vois deux différences principales.
1) JavaScript est de plus en plus puissants. Vous êtes autorisé à faire beaucoup plus avec la langue, car il ne dispose pas d'un "compilateur" ou des types. Il ya quelques grands cadres comme ExtJS et jQuery que essayer de simplifier les choses pour vous, mais même avec eux, vous êtes vraiment permis de faire une quantité incroyable de dégâts si vous le souhaitez.
2) ActionScript est beaucoup plus contraignantes et, par conséquent, beaucoup plus facile à maintenir. Adobe fait beaucoup de travail pour vous tenir à l'écart des pièces difficiles d'ECMAScript. ECMAScript Objets, prototypes de l'héritage, et les fermetures sont trois concepts que vous n'avez pas vraiment besoin de comprendre à programmer en ActionScript. Vous avez juste besoin de comprendre comment utiliser Adobe "Classe" objet.
Par des gestes simples, je préfère JavaScript. Cependant, une fois que le projet est grande, cela dépend à qui vous sont codant pour. Si j'avais une équipe de 5 développeurs de programmation à un scrappy start-up, j'ai choisi de JavaScript dans un battement de coeur. Toutefois, dans le périmètre d'une grande société, ou du monde universitaire, vous pourriez être plus en sécurité en s'appuyant sur la plate-forme Adobe.
Espère que ça aide.
L'un est de type en toute sécurité. Actionscript exige que vous définissez un type pour tous les objets, et le JavaScript n'est pas (pour cette question, en JavaScript, une variable peut être un type, puis immédiatement à un autre type).
Actionscript est orientée objet. Bien que vous pouvez en quelque sorte faire cela en JavaScript, Actionscript permet pour objet l'héritage, etc.
Essentiellement la principale différence que je trouve, c'est qu'ActionScript est plus une verbose statiquement typé classe de langue où que javascript est un des prototypes de la langue.
Malheureusement, il n'existe aucune inférence de type en ActionScript pour l'utilisation de Flex Builder donne un avertissement à chaque fois que vous laissez quelque chose non typée que je trouve inutile et trop bavard, non seulement elle est plus bavarde que javascript mais j'ai trouver le code équivalent à être plus bavarde que C#.
Toutefois, le supplément de verbosité n'ont de rendement perf améliorations et de type supplémentaire de sécurité au moment de la compilation. Malheureusement, cela ajoute également au moment de la construction, de façon très significative, en Java Script applications de n'importe quelle taille je suis habitué à des commentaires instantanés alors que mon dernier projet ActionScript eu le temps de construction de plus de 2 minutes.
Les principales différences sont que l'ActionScript 3 prend en charge à la fois de la classe de base d'héritage et de prototypes héritage, applique les noms des liaisons entre la classe des noms et des noms de fichiers, et ne prend pas en charge JavaScript global des méthodes telles que
eval
. Heureusement, vous pouvez faire plusieurs choses pour combler l'écart.Vous pouvez définir globalement l'espace de noms à l'aide de ES pour ECMAScript ou AS3 pour ActionScript 3:
Si vous utilisez l'espace de noms AS3, toute méthode de dérogation doit utiliser l'espace de noms AS3
et l'attribut override.
Si vous n'êtes pas en utilisant l'espace de noms AS3, vous pouvez utiliser le prototype des méthodes et des
propertyIsEnumerable
.Vous pouvez choisir d'utiliser l'espace de noms AS3 version d'une propriété ou d'une méthode dans une dynamique de fonction:
Pour désactiver les classes, l'héritage, vous pouvez également utiliser le compilateur suivant les options:
compc -as3=false -strict=false -es=true
Si vous n'utilisez pas l'espace de noms AS3, une instance d'une classe de base hérite
les propriétés et méthodes définies dans l'objet prototype.
Si vous décidez d'utiliser l'espace de noms AS3, une instance d'une classe de base hérite de la
propriétés et méthodes définies dans la définition de la classe.
Ici est un trait commun entre ECMAScript 4 et ECMAScript-2017 ou plus tard:
Références
La simulation AS3 fonctionnalités de langage JavaScript à l'aide d'AMD et ES5
JavaScript 2 Projet De
ECMAScript 4e Édition[proposé]:Types Prédéfinis et des Objets
Le Nouveau Navigateur De Guerre
ECMAScript 1-sur-1
Le problème avec JavaScript: JavaScript n'a pas de Classe
Ce qui est Nouveau dans ECMAScript 4
David Flanagan sur JavaScript 2
JavaScript 2 et de l'Avenir du Web
L'Écriture De Classes
Plus rapide tableau d'octets opérations avec ASC2
La gestion des écouteurs d'événement
À partir d'un développeur point de vue, ce qui importe le plus:
1) le Javascript n'est pas vraiment de la programmation orientée objet, il n'a PAS de mot-clé super, ce qui signifie que si vous remplacer( par tous moyens ) quelque chose, vous ne pouvez pas appeler ça super, et c'est le briseur d'affaire pour des programmes complexes pour lesquels la programmation orientée objet est la clé, et Actionscript3 est tous de la programmation orientée objet, vous pouvez avoir des millions de ligne de Actionscript3 code de travail ensemble, et bien entretenu.
2) Actionscript3 s'exécutant dans Flash Player qui n'a qu'une mise en œuvre à partir d'Adobe, cela signifie qu'il est conforme à tous les temps, tous les navigateurs( tant que installé Flash Player), mais le Javascript s'exécute dans le navigateur directement, mais chaque navigateur a sa propre mise en œuvre, ce qui signifie que votre code Javascript doit être testé à l'encontre de tous les navigateurs ciblés pour assurer le travail.
franchement c'est pas le même, parce que l'action script est chargé avec EMQJ24, un nouveau langage pour le développement de site web. tout en JS toujours avec elle EMCA22, la différence entre ceux qui sont le style et le format du code. et aussi l'action de script sont les âges assez, c'est pourquoi la plupart de programmeur de nos jours à l'aide de CSX01 mise à jour de la langue à partir de cSS,il peut reconnaître tous les types de langue et sans ligne.