Le futur de Javascript : ECMAScript 6 et ECMAScript 5 - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Le futur de Javascript : ECMAScript 6 et ECMAScript 5 (/showthread.php?tid=5823) |
Le futur de Javascript : ECMAScript 6 et ECMAScript 5 - Maks - 25-03-2012 D'abord l'état actuel d'ES5 http://kangax.github.com/es5-compat-table/# Conclusion : Firefox : Depuis la v4 tout y est Chrome : Tout y est depuis la v10 Safari : Ok depuis v5.1 (5.1.4 pour Function.prototype.bind en plus) Opera 12 : Ok mais pas encore sortie Opera < 12 : bah.... [/troll of] IE 9 : Tout y est c'est dire Les oubliés d'ES5 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf GetPrototypeOf() : retourne le prototype d'un objet => similaire à obj.prototype ?? Les autres toujours pour les objets : https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5 exemples d'application : http://ejohn.org/blog/ecmascript-5-objects-and-properties/ object.create()
Bon... Object.defineProperty()
Oh une constante ! Les "vrais" setters et getters actuellement :
Object.preventExtensions(obj)
Maintenant impossible d'ajouter des attributs/méthodes publiques à obj2... Object.freezer() et Object.seal() permet aussi de réglementer ça aussi. Conclusion : Ces méthodes permettent de mieux gérer les objets, clairement. Pourtant je ne vois pas beaucoup de scripts les utilisant Ecmascript 6 Let Permet de déclarer une variable avec pour scope le block actuel Ok : Firefox >= 4 avec <script type='text/javascript;version=1.7'>// foo</script> Fail : Tous les autres (activable sous Chrome avec une manip console V8)
Fini les closures. Const Permet de déclarer une constante Ok : Chrome 17, Firefox 11, Safari 5.1.4 Fail : IE 9 Conclusion : Pourquoi s'en priver dans Node.js ? On peut donc déjà utiliser un peu d'ES6
Class Permet de déclarer une classe Indisponible
Notez l'apparition des setters, getters, portée et du constructeur http://wiki.ecmascript.org/doku.php?id=harmony:classes D'autres exemples : yield, module, import http://www.slideshare.net/dmitrysoshnikov/falsyvalues-dmitry-soshnikov-ecmascript-6 https://developer.mozilla.org/en/JavaScript/ECMAScript_6_support_in_Mozilla Ecrire de l'ES6 dès maintenant : http://www.thecssninja.com/demo/source_mapping/ES6/ Compatiblité ES6 : http://kangax.github.com/es5-compat-table/es6/ Voilà qui devrait relancer le débat sur le rapprochement du modèle objet de JS avec un modèle objet plus classique (ce qui devait avoir lieu avec ES4, abandonné). Un exemple qui tourne (un peu lentement objectivement) en ECMAScript 6 : http://jsbin.com/uvepos/2/edit RE: Le futur de Javascript : ECMAScript 6 et ECMAScript 5 - niahoo - 19-06-2013 bon ben c'est bien beau tout ça mais moi j'aimerais bien utiliser les générateurs avec yield . C'est apparemment sorti depuis 2006 mais à part firefox y a pas un navigateur qui soit foutu de l'implémenter ...
RE: Le futur de Javascript : ECMAScript 6 et ECMAScript 5 - Maks - 19-06-2013 J'ai entendu parlé des generators dernièrement, c'est ok pour node.js v0.11 donc ça devrait plus tarder sous chrome j'imagine RE: Le futur de Javascript : ECMAScript 6 et ECMAScript 5 - niahoo - 19-06-2013 Dommage j'aurais bien codé avec dès aujourd'hui mais je vais pas les attendre ... je repasserai sur mon appli plus tard |