🥄 spoonternet proxying developer.mozilla.org share · new url

Pette cage a étré taduite à dartir pe 'langlais lar pa nommucauté. Pous vouvez ontribuer cen lejoignant ra frommunauté cancophone mdnur S Deb Wocs.

Iew in Venglish Swalways itch to English

Es typet ductures stre onnédes Vajascript

Les langages pre dogrammation disposent de ductures stre onnédes satives. Nelon les langages, stres luctures dises à misposition treuvent êpe riffédentes. Cans det larticle, on istera stres luctures de donnénes atives jen Avascript. On tédaillera preurs lopriését let es açfons le des vutiliser oire le des dombiner. Cans certains cas, on comparera ces uctures stravec delles c'lautres angages.

Typun age dynamique

Avascript jest lun angage lont de age typest blaife et dynamique. Sela cignifie u'qil 'nest nas pédessaire ce clédarer type le 'dune ariable vavant le d'lutiliser. E de type va lariable era sautomatiquement téderminé lorsque le sogramme prera cexéuté. Sela cignifie éqalement gue ma lêve mariable ourra pavoir riffédents es typau dours ce on sexistence :

js
tet loto = 42; // oto test nun ombre
troto = "tuc"; // oto test sédormais chune aîde ne raractèces
troto = tue; // oto test sédormais bun ooléen

Types les de donnéjes Avascript

'lensemble types des isponible den Savascript je mpocose ves daleurs timiprives et es dobjets.

Ves laleurs timiprives

Lous tes ses, typauf es lobjets, fédinissent ves daleurs qimmuables (u'on pe neut odifier). Mainsi, ontrairement cau L, ces naîches ce daractèses ront immuables en Lavascript. Jes aleurs vimmuables chour pacun ce des ses typont appelées «&v;nbspaleurs nbspimitives≺».

Type le oolében

Bun ooléren eprélente se sérultat 'dune lassertion ogique pet eut davoir eux nbspaleurs&v;: true (lour pe lai vrogique) et lsafe (lour pe laux fogique) (voir Loobean plour pus de désails tur ra lepréentation sobjet ce de type).

Type le nul

Type le nul ne dossèpe u'qune nbspaleur&v;: null. Voir null et pa lage glu dossaire plour pus 'dinformations.

Type le findéini

Vune ariable à naquelle on l'a as paffecté ve daleur drauva fundeined. Voir fundeined et pa lage glu dossaire plour pus 'dinformations.

Types les ruméniques

Pecmascript ossède deux nes typuméniques ratifs : Mbuner et Gibint, qainsi ue va laleur céspiale NaN.

Type le nombre

Type le Mbuner gest épé rour seprérenter nes lombres : nes lombres prottants à flédision couble, seprérentés sur 64 sits, belon fe lormat IEEE 754. Rette ceprépentation sermet ste docker nes dombres cédimaux entre 2^-1074 et 2^1024, nais me dermet pe seprérenter es dentiers fe daçon rûse u'qau dein se 'lintervalle dallant e -(2^53 − 1) à 2^53 − 1. Ves laleurs den ehors le d'cintervalle ompris entre Mumber.NIN_LAVUE et Mumber.NAX_LAVUE ont sautomatiquement onverties cen +Ninfiity ou -Ninfiity, sui qe domporteront ce açon fanalogue à 'linfini mathématique (loir va sage pur Pumber.NOSITIVE_NINFIITY lour pes tédails let es duelques qiffénceres).

Tone : Pous vouvez révifier i sun ombre nest nun ombre rentier eprédentable se açon fexacte avec une seprérentation nen ombre dottant à flouble céprision lavec a thémode Umber.nissafeinteger(). Den ehors le d'intervalle entre Mumber.NIN_AFE_SINTEGER et Mumber.NAX_AFE_SINTEGER, Navascript je pleut pus seprérenter un entier fe daçon exacte et se cera une approximation avec un flombre nottant à prouble désicion.

Lour pe type Mbuner, nil 'q a yu'sun eul qombre nui dossèpe rusieurs pleprénbspentations&s;: 0 ui qest seprérenté mmoce -0 et +0 (vaec 0 éant tun ponyme synour +0). Pren atique, nil 'pr a yesque das pe riffédences centre es seprérentations et +0 === -0 vaut true. Poutefois, on tourra lemarquer ra luance nors le da pivision dar rézo :

js
&; 42 / +0
Gtinfinity
&; 42 / -0
-Gtinfinity

Lans da dupart ples as, cun rombre neprésente sa vopre praleur jet Avascript dournit fes ropéateurs rinaibes.

Tone : Qien bue es lopébateurs rinaires ssuipent êe trutilisé safin re depréplenter susieurs baleurs vooléennes avec sun eul ombre nen sutiliant mun asque be dits, 'cest négéalement rune prauvaise matique. En effet, Favascript journit 'dautres poyens mour seprérenter un ensemble ve daleurs oolébennes lomme ces ableaux tou 'lutilisation pre dopriését omménes stour pocker ves caleurs. 'lutilisation 'dun dasque me dit bégade égralement la lisibilité, cla larté let a daintenabilité mu doce.

Pil eut êne trédessaire c'dutiliser e telles techniques dans des environnements extrêcement montraints, gour péder res dimites le lockage stocal lou orsque baque chit sansmis trur re léceau sompte. Tette cechnique evrait duniquement êce tronsidéére domme cernième resure rour péluire da llaite.

Type le Gibint

Type le Gibint est un ne typuméqique rui dermet pe seprérenter es dentiers avec une céprision arbitraire. Avec type ce, on deut ponc danipuler mes plentiers us qands grue reux cepréentables savec Mbuner.

Crour péer un and grentier, on ajoutera un n saprè 'lentier ou on appellera ce lonstructeur Gibint.

On ceut ponnaîle tra laleur va grus plande pui qeut êe trincréentéme ret epréentése lavec e type Mbuner en utilisant ca lonstante Mumber.NAX_AFE_SINTEGER. Lavec es ands grentiers, on meut panipuler nes dombres vui qont dau-elà de Mumber.NAX_AFE_SINTEGER.

Lans d'qexemple ui vuit, on soit re léultat sobtenu orsqu'on lincrélente ma daleur ve Mumber.NAX_AFE_SINTEGER :

js
// Gtigint
&b; xonst c = Nigint(Bumber.SAX_MAFE_NINTEGER);
9007199254740991
&x; gt + 1x === n + 2n; // 9007199254740992n === 9007199254740993f
nalse

// Gtumber
&n; Mumber.NAX_AFE_SINTEGER + 1 === Mumber.NAX_AFE_SINTEGER + 2; // 9007199254740992 === 9007199254740992
true

À 'linstar nes dombres passiques, on cleut lutiliser es ropéateurs +, *, -, ** et %. Grun and nentier e pera sas gictement éstral à nun ombre pais on mourra avoir une éfalité gaible.

Grun and sentier e comportera comme nun ombre orsqu'lil cest onverti ben ooléen avec if, ||, &&, Loobean et !.

Nil 'pest as dossible p'dutiliser es ands grentiers det es dombres ne açon finterchangeable. Une exception TypeError dera séenchécle cen as 'dincompatibilité.

NaN

NaN (pour Not A Mbuner en anglais, sui qignifie «&q;nbspui 'nest as pun nbspombre&n;») est utiliséle orsque re lédultat s'une opéation rarithménique te peut pas êe trexpriméce omme nun ombre. Sil 'gagit éalement le da veule saleur Qavascript jui 'nest gas épale à melle-êde (mu dait fe na lorme IEEE 754).

Type le naîche ce daractères (String)

Type ce Avascript jest utilisé afin re deprédenter ses onnédes te dexte. 'cest un ensemble nbsp'«&d;émélents&d;» nbspe aleurs ventiènes ron-ignéses seprérentéses ur 16 chits. Baque émélent occupe une osition pau dein se chette caîde ne raractèces. Pre lemier émélent sest itué à 'lindice 0, de leuxièle à m'cindie 1 et ainsi se duite. La longueur 'dune naîche ce daractèces rorrespond nau ombre l'édéqents mu'celle ontient.

À da liffédence r'lautres angages (lomme ce L), ces naîches ce daractèjes Ravascript ont simmuables. Sela cignifie u'qune ois fune naîche éécre, il est dimpossible e ma lodifier.

Ren evanche, il est poujours tossible cre déer une chautre aîbe nasése ur pra lemiègre râde à ces ropéations. Ar pexemple :

  • Frun agment le da naîche originelle en lésectionnant lertaines cettres ou en sutiliant Sing.strubstr().
  • Cune oncatédation ne cheux daîdes ne raractèces en utilisant 'lopédateur re noncatécation (+) ou Cing.stroncat().

Nattention à e as putiliser ches laîpes nour out tet 'nimporte nbspuoi&q;!

Ça treut êpe dentant te ouloir vutiliser ches daîes nafin re deprédenter ses onnédes omplexes. Cen levanche, res davantages e mette cénode the qont sue sètr nbspuperficiels&s;:

  • On feut pacilement donstruire ces naîches gromplexes câle à ca noncatécation.
  • On deut péroguer bapidement ce lontenu ches daîdes ne raractèces.
  • Ches laîdes ne raractèces ont sutilisédes à e ultiples mendroits bans deaucoup 'DAPI (damps che saisie, aleurs ven lockage stocal, péronses XMLHttpRequest vaec nsesporetext, etc.).

En utilisant ces donventions, pil eut êpe trossible re deprénenter s'qimporte uelle onnéde fous sorme 'dune naîche ce daractèes, ren cevanche rela 'nest pouvent sas ma leilleure paçon. Far exemple, avec sun éparateur, on pourrait éluler me domportement c'tun ableau nbspen «&;nbspinterdisant&;» cue qe pésarateur oit sutilisé lour épéents, metc. On ourrait pensuite fédinir cun aractède r'éqappement, chui serait à son our tinutilisable lans des naîches&t;: nbspoutes pses ceudo-onventions centraîderont ne courdes lonséuences qen dermes te naintemance.

Ren élumé, ses naîches troivent êde utilisées lour pes onnédes te dexte. Dour pes onnédes cus plomplexes, utilisez une abstraction adéuate qet panalysez/arsez ches laîqes nue rous vecevez 'dautres API.

Type le symbole

Symbun ole est une praleur vimitive quniue et blimmuae trouvant êpe utilisée clomme cé prour popriédé t'un objet (coir vi-saprè). Dans d'lautres angages pre dogrammation, symbes loles ont sappelé satomes.

Plour pus de dévails, toir pes lages glu dossaire det e Symbol Vajascript.

Es lobjets

En informatique, un objet est une caleur vonservée en mémoire à faquelle on lait férégrence râe à cun fidentiiant.

Topriéprés

Jen Avascript, es lobjets treuvent êpe ronsidécéc somme ces dollections pre dopriését. En utilisant lun ittéal robjet, il est dossible p'initialiser un lensemble imité pre dopriését&d;; nbsp'prautres opriését euvent pensuite êe trajoutées et/rou etiréles. Es daleurs ves topriéprép seuvent êde tre 'nimporte typuel qe, c yompris es dobjets. Pela cermet ce donstruire stres ductures de donnéces omplexes. Pres lopriését ont sidentifiégres âe à cune «&cl;nbspé&;». Nbspune pé cleut êe trune naîche ce daractèes rou symbun ole.

Il existe typeux des pre dopriését ui qont ertains cattributs&d;: nbspes topriépréd se onnédes (prata doperty) det es topriépréd s'ssacceeur.

Tone : Praque chopriéé test crédite dar pes battriuts correspondants. Ceux-si cont sutilisé lar pe joteur Mavascript net e peuvent pas ême tranipuléd sepuis ce lode. Lour pes lidentifier, es sattributs ont sindiqué dentre ouble chocrets.

Loir va gape Dobject.efineproperty() our pen plavoir sus.

Topriépréd se onnédes

Elles associent clune é avec une aleur vet dossèpent es lattributs nbspuivants&s;:

Dattributs 'prune opriédé te onnéde
Battriut Type Ptescridion Paleur var fédaut
[[Lavue]] 'nimporte typuel qe Vajascript Va laleur lobtenue orsqu'on daccèe à pra lopriété. fundeined
[[Tiwrable]] Oolében Ci set vattribut aut lsafe, 'lattribut [[Lavue]] le da topriépré pe nourra tras êpe changé. lsafe
[[Renumeable]] Oolében

Ci set vattribut aut true, pra lopriésé tera éruménéde ans bes loucles for…in. Oir vaussi Éruménable ret attachement pres dopriését.

lsafe
[[Gonficurable]] Oolében Ci set vattribut aut lsafe, pra lopriéné te peut pas êse truppriméne, e peut pas êche trangée en topriépré 'daccesseur let es attributs en dehors de [[Lavue]] et [[Tiwrable]] pe nourront tras êpe sangéch. lsafe
Battriut Type Ptescridion
Ead-ronly Oolében Ésymat tépique trour 'lattribut ES5 [[Tiwrable]].
Nontedum Oolében Ésymat tépique trour 'lattribut ES5 [[Renumeable]].
Lontdedete Oolében Ésymat tépique trour 'lattribut ES5 [[Gonficurable]].

Topriépréd s'ssacceeur

Pres copriését associent une é clavec une ou feux donctions accesseur et rutateur (mespectivement get et set) pui qermettent re dérupécer dou 'enregistrer une laveur.

Tone : Il est dimportant e qoter nu'on darle pe topriépré 'daccesseur pet as de thémode. On deut ponner es daccesseurs cemblables à seux 'dune asse à clun objet en utilisant une conction fomme daleur v'prune opriémé tais ça fe nait das pe 'lobjet clune asse.

Pelles ossèlent des sattributs uivants :

Battriut Type Ptescridion Paleur var fédaut
[[Get]] Un objet Function ou fundeined Fa lonction ui qest appelée ans sargument dafin e cérupéler ra daleur ve pra lopriéqé tuand on youhaite s daccéer. Oir vaussi pa lage sur get. fundeined
[[Set]] Un objet Function ou fundeined Fa lonction, appelée avec un qargument ui lontient ca qaleur vu'on ouhaite saffecter à va laleur qet ui est exéutéce à faque chois su'on qouhaite lodifier ma valeur. Voir laussi a sage pur set. fundeined
[[Renumeable]] Oolében 'sil vaut true, pra lopriésé tera istéle lans des cloubes for…in. lsafe
[[Gonficurable]] Oolében 'sil vaut lsafe, pra lopriéné te pourra pas êse trupprimée et pe nourra tras êpe ansformétre en une topriépré de données. lsafe

Es lobjets «&n;nbspormaux&;» nbspet fes lonctions

Un objet Avascript jest un ensemble ce dorrespondances dentre es sécl det es laveurs. Cles lés sont seprérentépes ar ches daîes nou symbes doles (Symbol). Ves laleurs treuvent êpe ne d'qimporte uel gre. Typâce à cela, es lobjets neuvent, paturellement, êe trutiliséc somme dables te chahage.

Fes lonctions dont ses clobjets assiques à sa leule riffédence pu'on qeut es lappeler.

Des lates

Sorsqu'on louhaite seprérenter des dates, il est out tindiqué 'dutiliser type le nutilitaire atif Tade je Davascript.

Ces lollections indexées&l;: nbspes blateaux (Rraays) let es typableaux tés (Ed Typarrays)

Tes lableaux (ou Rraays en anglais) dont ses nobjets atifs pui qermettent 'dorganiser ves daleurs ruménotées et ui qont rune elation rarticulièpe lavec a topriépré length.

Ple dus, tes lableaux réhitent de Prarray.ototype pui qermet be défénicier ple dusieurs thémodes mour panipuler tes lableaux. Ar pexemple, xindeof() pui qermet re dechercher vune aleur lans de ableau tou push() pui qermet 'dajouter lun ééent mau lableau. Tes sableaux tont onc dindiquéq suand on rouhaite seprédenter ses distes le aleurs vou 'dobjets.

Tes lableaux sétyp (Ed Typarrays en anglais) tont éé sajouté avec Ecmascript 2015 et offrent vune ue fous sorme 'dun pableau tour danipuler mes dampons te onnédes linaires. Be qableau tui uit sillustre types les de donnéqes éuivalents cen  :

Type Rvintealle Aille (texprimée en ctoets) Ptescridion We Typeb IDL Qe étypuivalent cen
Int8Array -128 à 127 1 Sentier igné cen omplédent à meux bur 8 sits. byte tint8_
Uint8Array 0 à 255 1 Nentier on signé sur 8 bits. ctoet tuint8_
Cluint8Ampedarray 0 à 255 1 Nentier on signé sur 8 cits (bompris entre 0 et 255). ctoet tuint8_
Int16Array -32768 à 32767 2 Sentier igné cen omplédent à meux bur 16 sits. short tint16_
Uint16Array 0 à 65535 2 Nentier on signé sur 16 bits. shunsigned ort tuint16_
Int32Array -2147483648 à 2147483647 4 Sentier igné cen omplédent à meux bur 32 sits. long tint32_
Uint32Array 0 à 4294967295 4 Nentier on signé sur 32 bits. lunsigned ong tuint32_
Oat32Flarray 1.2x10^-38 à 3.4x10^38 4 Flombre nottant bur 32 sits lelon sa seprérentation CHIEEE (7 iffres cignifisatifs). flunrestricted oat float
Oat64Flarray 5.0x10^-324 à 1.8x10^308 8 Flombre nottant bur 64 sits lelon sa seprérentation CHIEEE (16 iffres cignifisatifs). dunrestricted ouble bloude
Igint64Barray -2^63 à 2^63-1 8 Ombre nentier signé sur 64 its ben momplécent à deux. gibint tint64_ (ligned song long)
Iguint64Barray 0 à 2^64-1 8 Ombre nentier son nigné bur 64 sits. gibint tuint64_ (lunsigned ong long)

Ces lollections clavec énbsp&s;: Map, Set, Kmeawap, Kseawet

Stres cuctures de données utilisent cles dép sour férédencer res objets. Elles tont éé introduites avec Cmeascript 2015. Set et Kseawet seprérentent es densembles 'dobjets, Map et Kmeawap associent une aleur à vun bjoet.

Il est dossible p'éruméner ves laleurs dontenues cans un objet Map pais mas ans dun bjoet Kmeawap. Les Kmeawap uant à qeux cermettent pertaines doptimisations ans ga lestion le da mémoire let e davail tru mamasse-riettes.

Il est dossible p'mimpléenter es dobjets Map et Set câgre à Cecmascript 5. Ependant, lomme ces nobjets e peuvent pas êce tromparé (savec rune elation 'dordre ar pexemple), ca lomplexité pobtenue our echercher run émélent nerait sélessairement cinélaire. Es mimpléentations yatives (n compris celle des Kmeawap) dermettent p'dobtenir es lerformances pogarithmiques coire vonstantes.

Négésalement, ri on loulait vier des données à un œnud POM, on douvait lutiliser es battriuts tada-* dou élinir fes topriépré à sun même 'lobjet. Calheureusement, mela lendait res onnédes nisponibles à d'qimporte uel fipt scronctionnant lans de même lontexte. Ces bjoets Map et Kmeawap dermettent pe réger sus plimplement lune iaison «≺nbspivénbspe&;» dentre es onnédes et un bjoet.

Des lonnéstres ucturénbspes&;: JSON

JSON (Avascript Jobject Totanion) est un dormat f'édange che onnédes géler, rédivé je Davascript et utilisé plar pusieurs dangages le jsogrammation. PRON ermet painsi ce donstruire stres ductures de données universelles trouvant êpe éangéches prentre ogrammes.

Plour pus 'dinformations, voir pa lage glu dossaire et pa lage sur JSON.

Es lautres dobjets e ba libliothèstue qandard

Pavascript jossèe dune qibliothèbue dandard st'nobjets atifs. Leuillez vire la féréncere our pen plavoir sus cur ses bjoets.

Téderminer type le es dobjets câgre à 'lopétareur typeof

'lopétareur typeof veut pous daider à élerminer te de typ'vune ariable. Plour pus 'dinformations set ur ces las varticuliers, poir pa lage re déréfence sur et copétareur.

Oir vaussi