IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

ECMA International ratifie la norme JavaScript ECMA-262 Edition 5.1 [Infos]


Sujet :

JavaScript

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut ECMA International ratifie la norme JavaScript ECMA-262 Edition 5.1
    ECMA International ratifie la norme JavaScript ECMA-262 Edition 5.1
    Interopérabilité entre applications Web au menu

    L'International Organization for Standardization (ISO), l'International Electrotechnical Commission (IEC) et ECMA International ont procédé à une ratification de la norme ECMA-262 Edition 5.1.

    ECMA-262 définit le langage de script dynamique ECMAScript (JavaScript).

    ECMA-262 Edition 5.1 est une mise à jour minime mais nécessaire de la norme. Elle apporte un certain nombre de corrections « d'ordre rédactionnel » et de corrections de bugs.

    ECMA-262 Edition 5.1 permet ainsi une meilleure interopérabilité entre les applications Web et rend plus facile la mise en œuvre de la norme précédente (ECMA-262 Edition 5). Elle sera publiée en tant que norme ISO/IEC 16262 Edition 3.

    «ECMA-262 Edition 5.1 crée une base solide pour l'évolution future du langage JavaScript standardisé en offrant des fonctionnalités cruciales telles que le mode strict et la Meta-Programming APIs» explique Brendan Eich, directeur technique de Mozilla et principal contributeur de la norme.

    Pour la première fois, l'ECMA International a promis qu'il allait publier une suite de tests standardisés permettant aux développeurs de voir jusqu'où l'implémentation d'ECMAScript adhère à la norme actuelle.

    Les responsables de la standardisation d'ECMAScript ont également promis une plus grande cohérence du langage avec les différents navigateurs.

    Source : ECMA international

    Et vous ?

    Que pensez-vous des améliorations de la norme ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Expert éminent
    Avatar de kdmbella
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 799
    Points : 7 039
    Points
    7 039
    Par défaut
    c'est toujours une bonne chose qu'il y ait une normalisation et une standardisation ça évite d'avoir des fonctions JS qui marche ici et pas là du coup les éditeurs de navigateur n'auront plus qu'à ce conformer à la norme pour nous faciliter la tâche à nous les développeurs
    "L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent."
    - Benjamin Franklin

    De l'aide en Javascript , consultez la FAQ JS.

    De l'aide sur le FrameWork JS DHTMLX : posez vos questions sur le forum des Bibliothèques & Frameworks JS.

  3. #3
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Citation Envoyé par Hinault Romaric Voir le message
    ECMA-262 définit le langage de script dynamique ECMAScript (JavaScript).
    et ActionScript (Flash)

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 657
    Points : 1 240
    Points
    1 240
    Par défaut
    Ca veut dire quoi mode strict ? quel langage digne de ce nom aurait besoin d'un mode strict si il avait été correctement conçu au départ ?

    Bref , n'en déplaisent à certain , javascript c'est bien de la m...
    ça n’empêche pas qu'on l'utilise pour exploiter des apis , mais c'est juste qu'il est très mal conçu.

    typeof MyArray => Object
    typeof MyObject => Object
    typeof MyString => String


  5. #5
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par beekeep Voir le message
    et ActionScript (Flash)
    ...et jScript (plus toute autre implémentation particulière, comme celle d'Adobe pour les PDF, Photoshop, etc.) ^^

    @camus : oh dis donc t'as vu l'activité qu'il y a à la taverne ! Ils seraient super contents que tu ailles les rejoindre à mon avis ! (j'ai même pas dit le mot "troll" ! ah tiens si... zut )

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  6. #6
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Je suis un peu d'accord avec camus… J'ai découvert le mode strict il y a 3 jours ^^ (dans une discussion à propos de with) et j'ai pensé assez vite « tiens, si on oubliait le mode non strict ? ». Le mode strict apporte un gain de performances indéniables (en théorie, car aujourd'hui, il est très peu implémenté).
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Citation Envoyé par camus3 Voir le message
    Bref , n'en déplaisent à certain , javascript c'est bien de la m...

    typeof MyArray => Object
    typeof MyObject => Object
    typeof MyString => String

    un peu sévère quand même, mais comme tout est "objet" en javascript l'opérateur typeof est effectivement un peu vérolé et pour retrouver la "class" de l'objet il faut utiliser la méthode toString...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var getObjectClass = function( obj){
        return Object.prototype.toString.call( obj);
      };
    alert( getObjectClass( []));
    ...de la sorte on obtient ce que l'on souhaite.

    ECMAScript Language Specification
    - Object.prototype.toString()
    - The typeof Operator

  8. #8
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    typeof marche bien avec les booléens, nombres, chaînes et fonctions. Mais pas avec Array ni RegExp, même lorsqu'on les déclare de manière littérale :
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> typeof []
    "object"
    >>> typeof /^$/
    "object"
    Pour moi c'est un peu le type natif qui est une aberration en JS : tout n'est pas censé être objet ?

    En revanche, on dispose de l'opérateur instanceof, bien pratique si on sait à l'avance quel type on est susceptible de rencontrer :
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> [] instanceof Array
    true
    Là où c'est délicat, c'est si on s'amuse à déclarer des types natifs avec l'opérateur new :
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> var x = new Number(2)
    >>> x instanceof Number
    true
    >>> typeof x
    "object"        // pfff…
    Encore mieux :
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> 12 instanceof Number
    false
    jQuery utilise beaucoup de méthodes à paramètres optionnels ou quel l'on peut passer dans n'importe quel ordre ; il n'est pas rare d'y trouver des séquences de détection de type comme celle-ci :
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    if (typeof arg1 == "string" || arg1 instanceof String)

    Tout ça pour dire quoi ?
    JavaScript n'est pas un langage orienté objet. C'est un langage orienté aspect. Un objet n'a pas besoin d'être de tel ou tel type du moment qu'il offre bien les propriétés et méthodes qu'on veut utiliser. C'est le principe du duck typing.

    Alors oui, je suis tout à fait d'accord, la détection de type est un gros bordel en JS. Mais à part pour l'exemple de jQuery ci-dessus, je n'ai jamais vu de cas où c'était vraiment nécessaire.
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (method in obj) {
       return obj[method]();
    }
    Ça, c'est vraiment puissant, non ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  9. #9
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 527
    Points : 1 523
    Points
    1 523
    Par défaut
    Citation Envoyé par Watilin Voir le message
    JavaScript n'est pas un langage orienté objet. C'est un langage orienté aspect. Un objet n'a pas besoin d'être de tel ou tel type du moment qu'il offre bien les propriétés et méthodes qu'on veut utiliser. C'est le principe du duck typing.
    Si si, c'est bien un langage orienté objet, mais à prototype. Et c'est cette notion de prototype que ne comprennent (voire ne connaissent) pas la plupart des développeurs. Il y a encore quelques semaines, j'en parlais avec un développeur web de formation et de profession qui me disait que pas grand monde ne connaissait vraiment bien javascript. Quand je lui ai parlé du prototypage, il m'a dit: "ah ça je connais pas" . En fait il savait juste utiliser jquery... Ce qui confirmait donc malgré lui sa réflexion sur le manque de connaissance du langage...

  10. #10
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Citation Envoyé par camus3 Voir le message
    Ca veut dire quoi mode strict ? quel langage digne de ce nom aurait besoin d'un mode strict si il avait été correctement conçu au départ ?

    Bref , n'en déplaisent à certain , javascript c'est bien de la m...
    ça n’empêche pas qu'on l'utilise pour exploiter des apis , mais c'est juste qu'il est très mal conçu.

    typeof MyArray => Object
    typeof MyObject => Object
    typeof MyString => String

    Ben en java int float boolean char et tout le reste est object. en C int float et char array tout le reste ben c'est rien
    en C++ int float char array et le este c'est object

    ...

    maintenant certain langage ont un opérateur typof plus sioux puisqu'il retourne la classe quand c'est un objet.

    je ne vois pas de différence entre javascript et les autres langage sur ce point.

    si il en existe qui sont beaucoup plus clair. tcl tout est string ou function, en lisp tout est pair (couple), et quelques langages à objets où tout est objet il n'existe pas de type de base comme en java ou js

    A+JYT

  11. #11
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    re
    ecmaScript normalise le langage

    JavaScript n'est qu'une implémentation parmi d'autres
    Donc ecmaScript ne normalise pas les chose comme les propriété des objets document ou windows ou HTMLElement etc.

    ce que normalise Ecmas est le coeur du langage
    c'est qui une fonction comment on dois interpréter le code source etc.

    quand à ceux qui s'étonnent du mode Strict
    Javascript est né chez NetScape côté serveur
    il à rapidement été repris coté client par Netscape mais aussi microsoft puis par d'autres.
    à ce moment là il n'existait aucunes instance qui dicte comment doivent êtres faites les choses.

    puis Ecma c'est emparé de la chose et à sortie la première norme.
    deux solution s'offrait alors. pondre un truc clean et strict et donc exclure TOUTES les implémentations sans exception. le risque étant alors que personne n'adhérant à la norme (cela demanderait trop d'investissement) elle serait morte née.
    l'autre solution celle choisie consiste au contraire à faire une norme souple pour embrasser le plus grand nombre. les différents constructeurs n'ont alors que peut de chose à faire pour s'y conformer.

    ainsi la norme fut largement adopté. pouvais commencer un processus de convergence. au fil des normes les choses se sont donc mieux structurées.
    le mode strict est apparu pour proposer deux niveau à la norme un qui se veux la réalisation de la première option et un autre pour la seconde.
    cela permet de conserver les constructeur dans la norme tout en montrant une voie plus "carrée"

    ça n'a rien d'étonnant en soit c'est un processus de normalisation comme beaucoup d'autre.
    le relatif échec de XHTML face à HTML5 en est un exemple. XHTML se voulait plus strict plut logique plus efficace mais il était trop éloigné des moteurs existant. très peut de fabriquant ont adhéré. les tenant d'une approche plus pragmatique moins contraignante moins structuré on fini par aboutir à HTML5 qui ne rompt pas avec le passé.

    on à vécu ça dans java avec les atermoiement des évols de java7 etc.

    A+JYT

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 49
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par camus3 Voir le message
    Ca veut dire quoi mode strict ? quel langage digne de ce nom aurait besoin d'un mode strict si il avait été correctement conçu au départ ?

    Bref , n'en déplaisent à certain , javascript c'est bien de la m...
    ça n’empêche pas qu'on l'utilise pour exploiter des apis , mais c'est juste qu'il est très mal conçu.

    typeof MyArray => Object
    typeof MyObject => Object
    typeof MyString => String

    Effectivement, ça me déplaît. Le concept fondamental du langage ecmascript a fait ses preuves. C'est juste qu'en production, on reste à une version mal achevée qui commence sérieusement à dater.

  13. #13
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par gokudomatic Voir le message
    C'est juste qu'en production, on reste à une version mal achevée qui commence sérieusement à dater.
    Tout à fait d'accord. Et c'est la faute aux implémentateurs. Les éditeurs de navigateurs préfèrent assurer une rétro-compatibilité pour de vieux sites qui ne sont pas maintenus, quitte à saper les performances et présenter des failles de sécurité. Combien d'infections pourraient être évitées si on jetait document.write aux oubliettes ?

    J'aimerais bien voir un projet de navigateur « pur ECMA », avez-vous entendu parler d'un truc du genre ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    galio ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Citation Envoyé par Watilin Voir le message
    ...
    Combien d'infections pourraient être évitées si on jetait document.write aux oubliettes ?
    Bonjour
    ben non ça ce n'est pas normalisé par l'ECMA.
    Comme je le disais plus haut l'ECMA normalise le langage pas les objet ajouté par les contexte d'utilisation.

    pour ce qui est des objet du navigateur html dom c'est le W3C qui établi la norme

    le W3C procède sur se sujet en 2 étapes.
    les définitions qui définissent les objets et les méthodes qui y sont associées indépendamment des langages.
    puis les Bindings dont l'ECMAScript Binding et le java binding qui sont la façon don le lagage ECMAScript et Java doivent implémenter ces définitions. le W3C ne définit pas d'autre bidings mais pour C++ ou C par exemple il existe des norme sur la façon d'implémenter des IDL (définitions) le W3C se repose donc dessus. normalement un développeur qui veux implémenter le DOM en C/C++ utilise la définition IDL la passe à la moulinette et obtient la définitions C/C++ des objets et leur méthode reste à charge d'implémenter le code. pour php rien de plus simple on prends le source C généré et on le lie au langage php
    il en va ainsi de la plus part des langages.

    A+JYT

  16. #16
    OPi
    OPi est déconnecté
    Membre actif
    Avatar de OPi
    Homme Profil pro
    en recherche d'emploi
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : en recherche d'emploi
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 245
    Points
    245
    Par défaut
    Citation Envoyé par xelab Voir le message
    Si si, c'est bien un langage orienté objet, mais à prototype. Et c'est cette notion de prototype que ne comprennent (voire ne connaissent) pas la plupart des développeurs. Il y a encore quelques semaines, j'en parlais avec un développeur web de formation et de profession qui me disait que pas grand monde ne connaissait vraiment bien javascript. Quand je lui ai parlé du prototypage, il m'a dit: "ah ça je connais pas" . En fait il savait juste utiliser jquery... Ce qui confirmait donc malgré lui sa réflexion sur le manque de connaissance du langage...
    Effectivement : Programmation orientée prototype

    Indeed: JavaScript: The World's Most Misunderstood Programming Language par Douglas Crockford (l'auteur de JSLint et JSON)
    DragonSoft DS (informatique) — Johnny Five JF (textes) — Olivier Pirson OPi (mathématiques)
    OPiCitationshttps://bitbucket.org/OPiMedia

Discussions similaires

  1. L'assemblée générale Ecma International a annoncé l'approbation d'ECMAScript 6
    Par Stéphane le calme dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 22/06/2015, 09h38
  2. ECMA International adopte JSON comme standard
    Par Stéphane le calme dans le forum Actualités
    Réponses: 10
    Dernier message: 22/10/2013, 00h12
  3. 08 is not a legal ECMA-262 octal constant
    Par SPACHFR dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/07/2009, 17h22
  4. Norme JavaScript pour les formulaire
    Par rdams dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/09/2005, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo