Où puis-je trouver une liste de toutes les différences entre V8 et ECMAScript? Par exemple, V8 prend en charge const
, ce qui ne fait pas partie de la norme ECMAScript.
Réponse
Trop de publicités?Edit: réponse Directe: Suivre l'état de ES5 implémentations en cours qui indique le V8 googlecode questions tagged es5 ou https://github.com/joyent/node/wiki/ECMA-5-Mozilla-Features-Implemented-in-V8
V8 met en œuvre tous ES5 actuellement, à part une poignée de cas isolés, et alors seulement, afin d'être compatible avec la majorité des navigateurs actuels gérer la situation donnée.
Car il n'est pas être vivant sur sa propre presque toutes les différences que vous devrez faire face sera l'hôte de l'environnement de la mise en œuvre enroulé autour d'elle. Pour la plupart des utilisations c'est les diverses Api web les navigateurs. En tant que non-navigateur exemple, Node.js offre personnalisée Api du système de fichiers et interaction avec le réseau. En termes de linguistique de base, il n'est tout simplement pas beaucoup de marge de manœuvre. Moins les DOM, JavaScript est un sacrément langage simple à utiliser (en partie pourquoi il est tellement génial) et a un vraiment spécifique de documents de Spécifications.
ES5 est une itération de ES3 et près de 100% rétro-compatible si vous n'utilisez pas 'use strict'. Après presque une décennie de stagnation avec incapacité à obtenir un consensus parmi les principaux moteur JavaScript exécutants ES5 est né et a été limitée principalement pour couper et traiter les pires problèmes avec la langue. La mesure de l'usage dominant ES5 est la Matrice de figurants, Objet extras (principalement de l'Objet.créer), de la Fonction.lier, et le mode strict (qui est entièrement sur le décapage des fonctionnalités), et une poignée d'indigènes aides comme construit en JSON et en base64.
La plupart de ce 240 pages de la spécification est passé dans laborieusement de définir tous les détails sur le comportement qui a existé en JavaScript depuis près de 15 ans, ainsi que la liste des fonctionnalités qui seront obsolètes et finalement retiré (with
, les différentes utilisations de l' eval
, etc.).
Harmonie (ES6) est le premier vrai gros changement que nous allons voir. ES5 accompli le but d'obtenir des implémentations de moteurs sur la même page et l'éviscération la plupart des parties problématiques de JS. Hâte de ES6, il est temps de remédier à certains fondamentaux de la langue des questions qui exigent des changements de syntaxe à corriger. ES6 est prévue pour la finalisation à la fin de 2013, mais les gros morceaux sont déjà mises en œuvre dans les moteurs JS afin de les tester et de voir comment ils fonctionnent dans l'usage pratique. Le web est une chose vivante, et la mise en œuvre de nouvelles normes n'est pas une question de la création d'une nouvelle spécification et puis déchaîner sur le monde comme il est, la plupart des autres industries. Les idées sont flotté et doit passé rassembler à la fois le maître d'œuvre (le gars qui écrivent V8, Spidermonkey, JSC, Chakras, etc.) et puis le réel niveau de l'utilisateur (utilisateur étant dans ce cas les développeurs web écriture de code à exécuter dans les moteurs). La tour d'ivoire de la dictée seulement les résultats en l'absence d'utilisation.
Plus précisément, dans le cas d' const
: ce n'est actuellement pas défini exactement entièrement. C'est un mot-clé similaires, mais pas exactement la même fonctionnalité en V8 et Spidermonkey, et a un semblable, mais pas exactement le même sens pour ES6. Vous êtes probablement plus sûr de l'utiliser si vous vous attendez à ce que votre public cible du moteur à l'appui actuellement, mais comme mise en œuvre, il n'était pas techniquement partie de tout officiel spec. la migration d' let' and
const'
Au-delà de qu'il y a des "Objets Hôte", qui sont exposés par le moteur JS script est en cours d'exécution. JavaScript existe d'abord comme une mise en œuvre et le second comme un cahier des charges, jusqu'à récemment, il n'était pas évident pour des non-experts pour savoir où la plongée ligne est. Lorsqu'il s'exécute dans un navigateur (comme c'est généralement le cas), le Modèle d'Objet de Document est exposé comme un objet hôte pour le réglage automatique de l'utilisation. La fonctionnalité du DOM est largement décrite à l'aide d' IDL et est sous le coup de la W3C. La multitude de spécification des implémentations englober 6 de haut niveau des sections, près de 50 groupes de travail distincts, et autour de 1000 séparez les spécifications. Ces interfaces sont exposés à JavaScript, mais complètement sans gouvernance par les exigences de n'importe quel JavaScript spécification. Le DOM comprend un grand espace de fonctionnalité décrite et change constamment implémentations de celle-ci.
Au début il y avait Brendan Eich, et Brendan a dit "allons-y
être l'Objet". Et il y avait.Dans son avidité, Brendan convoitée pour plus d'objets, et c'est ainsi qu'il a parlé
"qu'il y ait de la Fonction, qui peut être utilisé pour construire des objets".La fonction est venu à exister et avec rien d'autre à hériter de la, il
compté Objet comme sa mère, et pourtant, il était aussi le créateur de toutes
Les objets, y compris sa propre mère.Cette incestueuse contradiction n'a servi qu'à faire enrager Brendan soif du même
de plus, et il a dit, "qu'il y ait de la Chaîne, avec qui je peux nom de tous mes
les mauvais enfants engendrés; Nombre, avec qui je peux compter mes conquêtes;
et le Tableau, avec qui je peux stocker des ensembles d'eux."Brendan capricieux de loi de tyrranical création engendré des créatures difformes,
condamné à vivre éternellement avec des morceaux qui n'a pas de sens. Nombre pleuré
de "Pourquoi l'antithèse de me demande à moi et
être confirmées par la réalité elle-même? Quel est le Dieu qui crée un monde
dans lequel une chose peut être une chose et non la chose en même temps?"Dans une finale de concassage acte de pure malice, Brendan se leva sur son
trône--le regard dans ses yeux l'un d'un maniaque Dieu ivre de puissance et de
vide de l'empathie-Brendan tonner "qu'il y Boolean! l'
incarnation de la Vérité avec laquelle je juge mon mauvais comportement de troupeau;
RegExp! avec qui je vais mesurer et puis boucher mes plus mal
la descendance, de la Chaîne; et la Date! né le neutre et avec un minimum d'intelligence,
comme un exemple pour tous les autres, le privilège que j'ai accordé à
eux, et comment il peut facilement être enlevé.
Et c'est là que javascript est venu.