javascript - paramètres du reste

Transcription

javascript - paramètres du reste
Paramètres du reste
J AVA S C R I P T (Programmation Internet)
Pour Débutants
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
[email protected]
INTRODUCTION :
En JavaScript, on peut passer à une fonction plus d’arguments qu’on a déclaré de paramètres formels dans la définition de la fonction à appeler et à
laquelle on passe des paramètres :
<script type="text/javascript"> "use strict";
function callFct(){
console.log(
"Les " + arguments.length +
" arguments passés sont :");
for(let k in arguments) {
console.log(arguments[k]);
}
}
callFct(
"Diasoluka" , new Date().getFullYear() , Math.PI)
callFct("Diasoluka" ,new Date().getFullYear() ,
Math["PI"] , Math.E , Math.SQRT2)
</script>
Exécution :
Les 3 arguments passés sont :
test.html:4:7
Diasoluka
test.html:9:11
J.D.B. DIASOLUKA Nz. Luyalu
2018
3.141592653589793
JavaScript Tome-II
test.html:9:11
test.html:9:11
Les 5 arguments passés sont : test.html:4:7
Diasoluka
2018
3.141592653589793
2.718281828459045
1.4142135623730951
test.html:9:11
test.html:9:11
test.html:9:11
test.html:9:11
test.html:9:11
On peut aussi accéder aux arguments comme suit :
<script type="text/javascript"> "use strict";
function called(){
console.log(
"Les " + arguments.length +
" arguments passés sont :");
for(let k=0 , l=arguments.length ; k<l ; k++) {
console.log(arguments[k]);
}
}
called(
"Diasoluka" , new Date().getFullYear() ,
Math.PI)
called("Diasoluka",new Date().getFullYear() ,
Math.PI , Math.E , Math.SQRT2)
</script>
Exécution :
Les 3 arguments passés sont :
test.html:4:7
Diasoluka
test.html:9:11
Paramètres du reste
- 2 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
2018
3.141592653589793
JavaScript Tome-II
test.html:9:11
test.html:9:11
Les 5 arguments passés sont :
test.html:4:7
Diasoluka
2018
3.141592653589793
2.718281828459045
1.4142135623730951
test.html:9:11
test.html:9:11
test.html:9:11
test.html:9:11
test.html:9:11
On n’est donc en fait pas obligé de déclarer des paramètres formels dans la
définition d’une fonction, si ce n’est pour faciliter la correspondance qui
donne pratiquement exactement le même résultat :
Mais on n’est pas non plus obligé d’utiliser tous les paramètres formels
nommés, tout comme on peut n’en utiliser aucun. Certains paramètres peuvent être prévus pour les versions ultérieures du programme, en tant que
« placeholder ».
Pour sauter un argument tout en passant (envoyant) l’argument qui vient
après lui dans la liste, il suffit d’utiliser « null » ou « undefined » sans
guillemets comme valeur de l’argument à sauter :
<script type="text/javascript"> "use strict";
let fct = function (p1,p2,p3,p4) {
console.log(p1,p2,p3);
console.log(
arguments[0],arguments[1],arguments[2]
);
console.log(
arguments[0],arguments[1],arguments[2],
arguments[3],arguments[4],arguments[5]
);
console.log("");
}
fct();
fct(1);
fct(1,2);
Paramètres du reste
- 3 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
fct(undefined,2);
fct(null,2);
JavaScript Tome-II
// fct( , 2);
// SyntaxError: expected expression,
// got ','
test.html:19:6
</script>
Exécution :
undefined undefined undefined
test.html:3:5
undefined undefined undefined
test.html:4:5
undefined undefined undefined undefined undefined undefined
test.html:7:5
1 undefined undefined
test.html:3:5
1 undefined undefined
test.html:4:5
1 undefined undefined undefined undefined undefined
test.html:7:5
1 2 undefined
1 2 undefined
1 2 undefined undefined undefined undefined
test.html:3:5
test.html:4:5
test.html:7:5
undefined 2 undefined
test.html:3:5
undefined 2 undefined
test.html:4:5
undefined 2 undefined undefined undefined undefined
test.html:7:5
null 2 undefined
test.html:3:5
null 2 undefined
test.html:4:5
null 2 undefined undefined undefined undefined test.html:7:5
N.B. :
Les fonctions fléchées (= Arrow Functions = fat arrow functions) ne
tolèrent (n’acceptent) pas le mot-clé « arguments ».
<script type="text/javascript"> "use strict";
const fselo = function(p) {
Paramètres du reste
- 4 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
let s,r;
if(arguments[0]==undefined){
console.log("'"+arguments[0]+"'")
// 'undefined'
console.log("'"+typeof arguments[0]+"'")
// 'undefined'
}
}
fselo();
const fself = (p) => {
let s,r;
if(arguments[0]==undefined){ }
// 08:42:15,637 ReferenceError:
//
arguments is not defined
}
fself();
</script>
test.html:17:1
LES PARAMÈTRES DU RESTE :
En fait, quand on passe des arguments à une fonction lors de son invocation,
tous ces arguments (arguments ordinaires et ceux du paramètre du reste)
sont regroupés dans une même Array avec Yandex, et dans un objet avec
Firefox, appelé dans les deux cas « arguments ».
<script type="text/javascript"> "use strict";
let fct = function(p, q, r, ...reste) {
console.log("L'ensemble des arguments passés sont :");
console.log(arguments)
console.log("ou");
console.log(Object.entries(arguments));
}
fct(
1,"deux",{trois:3,quatre:4},
"pr1","pr2","pr3"
);
</script>
Paramètres du reste
- 5 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Exécution avec Firefox :
Exécution avec Yandex :
Paramètres du reste
- 6 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Cependant, les paramètres du reste sont encore particulièrement quant à eux
regroupés avec les deux navigateurs, dans une array spéciale individualisée
portant le nom que vous avez donné à ce paramètre du reste.
<script type="text/javascript"> "use strict";
let t;
Paramètres du reste
- 7 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
let fct = function(p, q, r, ...reste) {
JavaScript Tome-II
console.log("Les arguments du reste passés sont :");
console.log(reste)
console.log(Object.entries(reste))
console.log(Object.keys(reste))
console.log(Object.values(reste))
}
fct(
1,"deux",{trois:3,quatre:4},
"pr1","pr2","pr3"
);
</script>
Exécution avec Firefox :
Paramètres du reste
- 8 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Exécution avec Yandex :
Paramètres du reste
- 9 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Syntactiquement parlant, un « paramètre du reste » est un paramètre
nommé précédé de trois points (…) qui, lors d’un appel à fonction, devient
une Array contenant le reste d’arguments (ceux qui n’ont pas de correspondant dans la liste des paramètres formels nommés qui le précède.
<script type="text/javascript"> "use strict";
let t;
let fct = function(p, q, r, ...reste) {
console.log("L'ensemble des arguments passés sont :");
console.log(arguments);
console.log("ou");
console.log(Object.entries(arguments));
console.log(Object.keys(arguments))
console.log(Object.values(arguments))
console.log("=".repeat(35))
Paramètres du reste
- 10 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
console.log(
"Les entries, keys et values de"+
" « arguments » sont :");
console.log(Object.entries(arguments))
console.log(Object.keys(arguments))
console.log(Object.values(arguments))
console.log("=".repeat(35))
console.log("Les arguments du reste passés sont :");
console.log(reste)
console.log(Object.entries(reste))
console.log(Object.keys(reste))
console.log(Object.values(reste))
return arguments;
}
let retf=fct(
1,"deux",{trois:3,quatre:4},
"pr1","pr2","pr3"
);
t="";
for(let i of retf) t+=i+" | ";
console.log(t);
</script>
Exécution avec Firefox :
Paramètres du reste
- 11 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Exécution avec Yandex :
Paramètres du reste
- 12 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
On ne peut avoir qu’un seul paramètre du reste, et il doit être le dernier des
paramètres nommés, bien que le nombre de paramètres formels nommés
qui le précèdent ne soit pas limité mais il en faut au moins un.
<script type="text/javascript"> "use strict";
let restParametersFct =
(formalParameter, ...restParametes) => {
console.log(formalParameter);
console.log(restParametes);
for (
Paramètres du reste
- 13 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
let i=0, len=restParametes.length
; i<len ; i++) {
console.log(restParametes[i]);
}
}
restParametersFct(
"named_Formal_Parameter", 'rP1', 'rP2', 'rP3', 'rP4'
);
</script>
Exécution :
10:41:27,512
named_Formal_Parameter
test.html:5:5
10:41:27,512
test.html:6:5
Array(4) [ "rP1", "rP2", "rP3", "rP4" ]
10:41:27,513
10:41:27,515
10:41:27,515
10:41:27,515
rP1
rP2
rP3
rP4
test.html:9:7
test.html:9:7
test.html:9:7
test.html:9:7
Une application pratique des paramètres du reste c’est de trouver le
« max » ou la « min » d’une suite de nombres dans une « Array » :
<script type="text/javascript">
"use strict";
const values = [16,-3, 23,-11,-25,-46, 44,18,36,-22];
console.log( Math.max(...values) ); // 44
console.log( Math.min(...values) ); // -46
</script>
Une mini base de données avec les paramètres du reste :
<script type="text/javascript"> "use strict";
const titl = "MINI BASE DE DONNÉES",
tl = titl.length,
al=10;
console.log(
Paramètres du reste
- 14 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
titl
.padEnd(tl+al,"*")
.padStart(tl+(al*2),"*"),"\n"
);
console.log("".padEnd(tl+(al*2),"=") , "\n\n")
let restParamsFct =
(NamedFormalParam, ...restParam) => {
let retObj = {};
for(let k=0, len=restParam.length ; k<len ; k++){
console.log(
"[restParam["+k+"]] =",[restParam[k]]
);
console.log("NamedFormalParam[restParam["+k+"]] =",
NamedFormalParam[restParam[k]]+"\n\n"
);
}
for(let k=0, len=restParam.length ; k<len ; k++){
retObj[restParam[k]] =
NamedFormalParam[restParam[k]];
}
console.log("".padEnd(50,"="));
return retObj;
}
let corpsHumain = {
deplacement: 'Membres',
alimentation: 'Système Digestif',
sexe: 'Mâle ou Femelle',
intelligence: 'Cerveau'
};
let ovnis = {
deplacement: 'MHD',
alimentation: 'UnUnPentium',
sexe: 'Sans Objet',
vitesse: '+++Mach',
Paramètres du reste
- 15 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
materiau: 'Cosmique',
intelligence: 'Télépathie'
};
JavaScript Tome-II
let corpsHumainDescr =
restParamsFct(
corpsHumain,
'alimentation', 'deplacement', 'intelligence',
'sexe'
);
let ovniDescr =
restParamsFct(ovnis,
'deplacement', "intelligence", 'vitesse', 'materiau', 'alimentation');
console.log(corpsHumain);
console.log(corpsHumainDescr);
console.log(corpsHumainDescr.deplacement);
console.log(corpsHumainDescr.sexe);
console.log(ovnis);
console.log(ovniDescr);
console.log(ovniDescr.sexe);
console.log(ovniDescr.deplacement);
</script>
Exécution :
**********MINI BASE DE DONNÉES**********
========================================
test.html:6:3
test.html:11:3
[restParam[0]] = Array [ "alimentation" ]
test.html:19:7
NamedFormalParam[restParam[0]] = Système Digestif
test.html:23:7
[restParam[1]] = Array [ "deplacement" ]
NamedFormalParam[restParam[1]] = Membres
Paramètres du reste
test.html:19:7
test.html:23:7
- 16 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
[restParam[2]] = Array [ "intelligence" ]
NamedFormalParam[restParam[2]] = Cerveau
JavaScript Tome-II
test.html:19:7
test.html:23:7
[restParam[3]] = Array [ "sexe" ]
test.html:19:7
NamedFormalParam[restParam[3]] = Mâle ou Femelle
test.html:23:7
==================================================
[restParam[0]] = Array [ "deplacement" ]
NamedFormalParam[restParam[0]] = MHD
test.html:19:7
test.html:23:7
[restParam[1]] = Array [ "intelligence" ]
NamedFormalParam[restParam[1]] = Télépathie
test.html:19:7
test.html:23:7
[restParam[2]] = Array [ "vitesse" ]
NamedFormalParam[restParam[2]] = +++Mach
test.html:19:7
test.html:23:7
[restParam[3]] = Array [ "materiau" ]
NamedFormalParam[restParam[3]] = Cosmique
test.html:19:7
test.html:23:7
[restParam[4]] = Array [ "alimentation" ]
test.html:19:7
NamedFormalParam[restParam[4]] = UnUnPentium test.html:23:7
==================================================
Object {
deplacement: "Membres", alimentation: "Système Digestif",
sexe: "Mâle ou Femelle", intelligence: "Cerveau"
}
test.html:69:3
Object {
alimentation: "Système Digestif", deplacement: "Membres",
intelligence: "Cerveau", sexe: "Mâle ou Femelle"
}
test.html:70:3
Membres
Mâle ou Femelle
Paramètres du reste
test.html:71:3
test.html:72:3
- 17 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Object {
deplacement: "MHD", alimentation: "UnUnPentium",
sexe: "Sans Objet", vitesse: "+++Mach",
materiau: "Cosmique", intelligence: "Télépathie"
}
test.html:74:3
Object {
deplacement: "MHD", intelligence: "Télépathie",
vitesse: "+++Mach", materiau: "Cosmique",
alimentation: "UnUnPentium"
}
test.html:75:3
undefined
MHD
test.html:76:3
test.html:77:3
Un petit code qui utilise plusieurs aspects (fonctionnalités et implications)
des « paramètres du reste » :
<script type="text/javascript"> "use strict";
let restParametersFct =
(formalParameter, ...restParameters) => {
console.log("");
console.log("formalParameter =",formalParameter);
console.log("formalParameter[0]
=",formalParameter[0]);
console.log("restParameters =",restParameters);
console.log(
"restParameters.toString() =",
restParameters.toString()
);
console.log(
"String(restParameters) =",
String(restParameters)
);
console.log("");
console.log("".padStart(49,"="));
Paramètres du reste
- 18 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
let tmp = "= " + formalParameter[0]+" => "+
restParameters.toString();
tmp = tmp.padEnd(48," ") + "=";
console.log(tmp.padStart(42,"= "));
console.log("".padEnd(49,"="));
console.log("");
for (let i=0, len=restParameters.length ; i<len ;
i++) {
console.log("restParameters["+i+"]
=",restParameters[i]);
console.log("");
}
}
const oArg = [
{"Dadet":["Homme","Kinois"]},
{"Pierrette":["Femme","Alien","Umo","ExtraGalactic"]},
{"Jean":["Homme","Luozien","Kinoinisé"]}
];
console.log("Object.keys(oArg) ***");
console.log(Object.keys(oArg));
console.log("");
console.log("Object.values(oArg) +++");
console.log(Object.values(oArg));
console.log("");
for(let k=0,l=oArg.length ; k<l ; k++ ){
let vl = Object.values(oArg)[k];
console.log(
"Object.keys(Object.values(oArg)[k])" ,
" /// [KEYS]"
);
console.log( Object.keys(Object.values(oArg)[k]));
Paramètres du reste
- 19 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
console.log("");
console.log(
"Object.values(Object.values(oArg)[k])",
" \\\\\\ [VALUES]"
);
console.log( Object.values(Object.values(oArg)[k]));
restParametersFct(
Object.keys(vl), Object.values(vl)
);
}
</script>
Exécution dans la console, et développement des structures :
14:34:59,400
14:34:59,401
Object.keys(oArg)
*** test.html:43:3
Array(3) [ "0", "1", "2" ]
0: "0"
1: "1"
2: "2"
length: 3
__proto__: Array(0)
test.html:44:3
14:34:59,402
14:34:59,402
Object.values(oArg)
+++ test.html:48:3
Array(3) [ {…}, {…}, {…} ]
(3) [{…}, {…}, {…}]
0: {Dadet: Array(2)}
1: {Pierrette: Array(4)}
2: {Jean: Array(3)}
length: 3
__proto__: Array(0)
test.html:49:3
Paramètres du reste
- 20 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
14:34:59,404
Object.keys(Object.values(oArg)[k]) /// [KEYS]
test.html:57:6
14:34:59,405
Array [ "Dadet" ]
0: "Dadet"
length: 1
__proto__: Array(0)
test.html:62:6
14:34:59,406
Object.values(Object.values(oArg)[k]) \\\ [VALUES]
test.html:66:6
14:34:59,406
Array [ (2) […] ]
[Array(2)]
0: (2) ["Homme", "Kinois"]
length: 1
__proto__: Array(0)
test.html:71:6
14:34:59,407
formalParameter =
Array [ "Dadet" ]
["Dadet"]
0: "Dadet"
length: 1
__proto__: Array(0)
test.html:6:5
14:34:59,408
formalParameter[0] = Dadet
test.html:7:5
14:34:59,408
restParameters =
Array [ (1) […] ]
Paramètres du reste
- 21 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
0: [Array(2)]
length: 1
__proto__: Array(0)
test.html:8:5
JavaScript Tome-II
14:34:59,409
restParameters.toString() = Homme,Kinois
test.html:9:5
14:34:59,410
String(restParameters) = Homme,Kinois
test.html:13:5
14:34:59,410
=================================================
= Dadet => Homme,Kinois
=
=================================================
test.html:27:5
14:34:59,411
restParameters[0] =
Array [ (2) […] ]
0: (2) ["Homme", "Kinois"]
length: 1
__proto__: Array(0)
test.html:31:7
14:34:59,412
Object.keys(Object.values(oArg)[k]) /// [KEYS]
test.html:57:6
14:34:59,413
Array [ "Pierrette" ]
0: "Pierrette"
length: 1
__proto__: Array(0)
test.html:62:6
Paramètres du reste
- 22 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
14:34:59,413
Object.values(Object.values(oArg)[k]) \\\ [VALUES]
test.html:66:6
14:34:59,413
Array [ (4) […] ]
[Array(4)]
0: (4) ["Femme", "Alien", "Umo",
"ExtraGalactic"]
length: 1
__proto__: Array(0)
test.html:71:6
14:34:59,414
formalParameter =
Array [ "Pierrette" ]
0: "Pierrette"
length: 1
__proto__: Array(0)
test.html:6:5
14:34:59,414
formalParameter[0] = Pierrette
test.html:7:5
14:34:59,414
restParameters = Array [ (1) […] ]
[Array(1)]
0: [Array(4)]
length: 1
__proto__: Array(0)
test.html:8:5
14:34:59,415
restParameters.toString() =
Femme,Alien,Umo,ExtraGalactic
Paramètres du reste
- 23 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
test.html:9:5
JavaScript Tome-II
14:34:59,415
String(restParameters) =
Femme,Alien,Umo,ExtraGalactic
test.html:13:5
=================================================
= Pierrette => Femme,Alien,Umo,ExtraGalactic
=
=================================================
test.html:27:5
14:34:59,416
restParameters[0] = Array [ (4) […] ]
[Array(4)]
0: (4) ["Femme", "Alien", "Umo",
"ExtraGalactic"]
length: 1
__proto__: Array(0)
test.html:31:7
14:34:59,418
Object.keys(Object.values(oArg)[k]) /// [KEYS]
test.html:57:6
14:34:59,418
Array [ "Jean" ]
["Jean"]
0: "Jean"
length: 1
__proto__: Array(0)
test.html:62:6
14:34:59,418
Object.values(Object.values(oArg)[k]) \\\ [VALUES]
test.html:66:6
14:34:59,419
Array [ (3) […] ]
0: (3) ["Homme", "Luozien", "Kinoinisé"]
Paramètres du reste
- 24 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
length: 1
__proto__: Array(0)
test.html:71:6
JavaScript Tome-II
14:34:59,419
formalParameter = Array [ "Jean" ]
["Jean"]
0: "Jean"
length: 1
__proto__: Array(0)
test.html:6:5
14:34:59,420
formalParameter[0] = Jean
test.html:7:5
14:34:59,420
restParameters =
Array [ (1) […] ]
[Array(1)]
0: [Array(3)]
length: 1
__proto__: Array(0)
test.html:8:5
14:34:59,420
restParameters.toString() =
Homme,Luozien,Kinoinisé
test.html:9:5
14:34:59,421
String(restParameters) = Homme,Luozien,Kinoinisé
test.html:13:5
=================================================
Paramètres du reste
- 25 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
= Jean => Homme,Luozien,Kinoinisé
=
=================================================
test.html:27:5
14:34:59,425
restParameters[0] = Array [ (3) […] ]
[Array(3)]
0: (3) ["Homme", "Luozien", "Kinoinisé"]
length: 1
__proto__: Array(0)
test.html:31:7
Quelques propriétés du « paramètre du reste » :
<script type="text/javascript"> "use strict";
let s= (p1, ...p2) => {
console.log(p2);
}
s();
</script>
21:30:16,894
Array []
test.html:3:4
[]
length: 0
<prototype>: Array []
<prototype>: []
concat: function concat()
constructor: function Array()
concat: function concat()
every: function every()
filter: function filter()
forEach: function forEach()
from: function from()
indexOf: function indexOf()
isArray: function isArray()
join: function join()
lastIndexOf: function lastIndexOf()
Paramètres du reste
- 26 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
length: 1
map: function map()
name: "Array"
of: function of()
pop: function pop()
prototype: Array []
push: function push()
reduce: function reduce()
reduceRight: function reduceRight()
reverse: function reverse()
shift: function shift()
slice: function slice()
some: function some()
sort: function sort()
splice: function splice()
unshift: function unshift()
Symbol(Symbol.species): Getter
<prototype>: function ()
copyWithin: function copyWithin()
entries: function entries()
every: function every()
fill: function fill()
filter: function filter()
find: function find()
findIndex: function findIndex()
flat: function flat()
flatMap: function flatMap()
forEach: function forEach()
includes: function includes()
indexOf: function indexOf()
join: function join()
keys: function keys()
lastIndexOf: function lastIndexOf()
length: 0
map: function map()
pop: function pop()
push: function push()
reduce: function reduce()
reduceRight: function reduceRight()
reverse: function reverse()
shift: function shift()
slice: function slice()
some: function some()
Paramètres du reste
- 27 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
sort: function sort()
splice: function splice()
toLocaleString: function toLocaleString()
toSource: function toSource()
toString: function toString()
unshift: function unshift()
values: function values()
Symbol(Symbol.iterator): function values()
Symbol(Symbol.unscopables): Object {
copyWithin: true,
entries: true,
fill: true,
find: true,
findIndex: true,
includes: true,
keys: true,
values: true,
}
<prototype>: Object { … }
Une forme particulière de « paramètre du reste » est l’array des variables
passées à une fonction via un template de « littérale de chaîne », mais aussi l’array des textes séparés par ses variables et stockée dans la première
variable de la fonction appelée :
<script> "use strict"; const cl=console.log;
const pend = (p1,...p2) => {
const len1=p2[0].length+p2[1].length,
len2=len1+p1[2].length;
return p2[0].padStart(len1,p2[1]).padEnd(len2,p1[2]);
};
const w='www.diasoluka',h="http://";
const rp=pend`${w}${h}.luy`;
cl(rp);
</script>
Paramètres du reste
- 28 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Un dernier mot sur les « paramètres du reste » :
LES PARAMÈTRES DU RESTE sont un type particulier d’Array est
le paramètre du reste.
<script type="text/javascript"> "use strict";
let f = (p, ...a) => {
console.log("a =",a);
}
f();
</script>
En fait, les Arrays sont simplement des littéraux d’objet dont les labels
sont étiquetés avec des nombres ordonnés à partir de l’indice zéro.
Voyez leur structure ci-après :
<script type="text/javascript"> "use strict";
let f = (p, ...a) => {
console.log("a =",a);
return a;
}
let r=f("va dans p",
"Zéro","Un","Deux","Trois","Quatre","Cinq");
console.log("Object.entries(r)",Object.entries(r));
console.log("Object.values(r)",Object.values(r));
</script>
Paramètres du reste
- 29 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
a =
Array(6) [
"Zéro", "Un", "Deux",
"Trois", "Quatre", "Cinq"
]
test.html:3:3
Object.entries(r)
Array(6) [
(2) […], (2) […], (2) […],
(2) […], (2) […], (2) […]
]
test.html:10:3
Object.values(r)
Array(6) [
"Zéro", "Un", "Deux",
"Trois", "Quatre", "Cinq"
]
test.html:11:3
Paramètres du reste
- 30 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Voici comment reconstituer cette Array avec un « Object literal » :
<script type="text/javascript"> "use strict";
let r = {
0:"Zéro" , 1:"Un" , 2:"Deux",
3:"Trois" , 4:"Quatre" , 5:"Cinq"
}
console.log("Object.entries(r)",Object.entries(r));
console.log("Object.values(r)",Object.values(r));
</script>
Paramètres du reste
- 31 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Confrontons les deux paradigmes :
<script type="text/javascript"> "use strict";
let a=[
"Zéro" , "Un" , "Deux" ,
"Trois" , "Quatre" , "Cinq"
]
let o={
0:"Zéro" , 1:"Un" , 2:"Deux" ,
3:"Trois" , 4:"Quatre" , 5:"Cinq"
}
console.log("ARRAY" , "a[0] =" , a[0]);
console.log("HASH" , "o[0] =" , o[0]);
</script>
Paramètres du reste
- 32 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
Recommandation :
Pour tester un code HTML, DOM, JavaScript, CSS, allez sur l’IDE du
site http://jsfiddle.net/, dommage qu’il faut être online (connecté).
Kinshasa, le jeudi 4 avril 2019 - 10:48:08 PM
Mots-clés :
JAVASCRIPT, Programmation Internet, paramètres du reste, base de données
Paramètres du reste
- 33 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
DIASOLUKA Nz. Luyalu
Docteur en Médecine, Chirurgie & Accouchements (1977),
CNOM : 0866 - Spécialiste en ophtalmologie (1980)
Études humanités : Scientifique - Mathématiques & Physique.
Informaticien-amateur, Programmeur et WebMaster.
Chercheur indépendant, autonome et autofinancé,
bénévole, sans aucun conflit d’intérêt ou liens
d'intérêts ou contrainte promotionnelle avec
qui qu’il soit ou quelqu’organisme ou
institution / organisation que ce soit, étatique,
paraétatique ou privé, industriel ou commercial
en relation avec le sujet présenté.
+243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818
[email protected]
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation
D’autres publications pouvant aussi intéresser :
• https://www.scribd.com/document/377036251/LeDosage-Des-Medicaments-en-Cac-Cas
• https://www.scribd.com/document/377035454/LeHasard-Des-Thermometres-Non-contact-a-Infrarouge
Paramètres du reste
- 34 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
• https://www.scribd.com/document/376222482/PetiteIntroduction-Aux-Fonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foien-Jesus-Christ-Pour-Quoi-Faire
• https://www.scribd.com/document/375689778/Lacuitevisuelle-angulaire
• https://www.scribd.com/document/375349851/Lavariable-This
•
https://www.scribd.com/document/375024162/FonctionsImbriquees-en-JS
• https://www.scribd.com/document/374789297/FormatInterne-Des-Objets-JavaScript
•
https://www.scribd.com/document/374788758/Iterationsen-JavaScript
• https://www.scribd.com/document/374738470/Le-PlusGrand-Secret-de-La-Creation
• https://www.scribd.com/document/374597969/NouvelleFormule-d-IMC-indice-de-doduite-Selon-Dr-Diasoluka
• https://www.scribd.com/document/373847209/PropertyDescriptors
• https://www.scribd.com/document/373833282/l-ObjetGlobal-Window
•
https://www.scribd.com/document/372665249/JavascriptTome-II
• https://www.scribd.com/document/355291488/motiliteoculaire-2
Paramètres du reste
- 35 / 36 - jeudi, 4. avril 2019 (10:48 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-II
• https://www.scribd.com/document/355291239/motiliteoculaire-I
• https://www.scribd.com/document/355290248/Script-dAnalyses-Des-Reflexes-Pupillomoteurs
•
https://www.scribd.com/document/321168468/Renseigne
ments-Id-et-Anthropometriques
•
https://www.scribd.com/document/320856721/Emission31-Jul-2016
•
https://www.scribd.com/document/318182982/Complicati
on-Visuelle-du-Traitement-de-La-Malaria
• https://www.scribd.com/document/318180637/RapportEntre-Oxymetrie-Et-Type-Respiration
•
https://www.scribd.com/document/315746265/Classificati
on-Des-Medicaments
•
https://www.scribd.com/document/315745909/Incongruen
ces-Heresies-et-Heterodoxies-de-la-Notion-deLaboratoire
• https://www.scribd.com/document/315745725/RapportEntre-Oxymetrie-Et-Type-Respiration
Paramètres du reste
- 36 / 36 - jeudi, 4. avril 2019 (10:48 )