Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

intérêt de var dans une function ???

4 réponses
Avatar
yt.trash
quand je regarde certaines function js publiées sur le web, je remarque
bien souvent qu'une variable interne à une function est déclarée en var,
par ex :

function hsl2rgb(h, s, l)
{
[...]
var rgb_color = "rgb(" + red + "," + green + "," + blue + ")"
return rgb_color
}

y a t'il un intérêt quelconque ?
--
Une Bévue

4 réponses

Avatar
Cenekemoi
quand je regarde certaines function js publiées sur le web, je
remarque bien souvent qu'une variable interne à une function est
déclarée en var, par ex :

function hsl2rgb(h, s, l)
{
[...]
var rgb_color = "rgb(" + red + "," + green + "," + blue + ")"
return rgb_color
}

y a t'il un intérêt quelconque ?


Définir une variable avec "var" dans une fonction rend cette variable
*locale* à cette fonction.
Sinon, elle est globale à toute la page et appartient à l'objet *window*
; ce dernier point peut être intéressant mais peut également s'avérer
dangereux car une variable globale peut être modifiée n'importe où dans
le script !

--
Cordialement, Thierry ;-)

Avatar
yt.trash
Cenekemoi wrote:


Définir une variable avec "var" dans une fonction rend cette variable
*locale* à cette fonction.


ah m@&rde ! j'avais compris le contraire, d'où mon étonnement...

mais si hors de toute fonction je déclare une var en var ma_var, là elle
est globale, enfin, à la fenêtre...

Sinon, elle est globale à toute la page et appartient à l'objet *window*
; ce dernier point peut être intéressant mais peut également s'avérer
dangereux car une variable globale peut être modifiée n'importe où dans
le script !


bon je mettrai var partout dans mon function quand ce n'est pas une var
globale définie hors de toute function.

c'est quand même bizarre cette syntaxe...
--
Une Bévue

Avatar
ASM

c'est quand même bizarre cette syntaxe...


var = définir une variable

var en dehors d'une fonction = pour toute la page
var dans une fonction = que pour la fonction

important de bien tout varier dans les fonctions ce qui n'a pas à être
global : ça diminue les risques de fuite de mémoire dans les IE


Cette syntaxe n'est pas plus bizarre que son inverse (en PHP)
où les globales (déclarées en dehors des fonctions)
ne sont pas accessibles aux fonctions ...
... sans un appel au tableau des globales

globales qui alors n'ont rien de globales ... (à mon avis)

--
ASM

Avatar
yt.trash
ASM wrote:


Cette syntaxe n'est pas plus bizarre que son inverse (en PHP)
où les globales (déclarées en dehors des fonctions)
ne sont pas accessibles aux fonctions ...
... sans un appel au tableau des globales
globales qui alors n'ont rien de globales ... (à mon avis)


php... (ça fait qq années que je n'y ai pas touché)

je n'ai jamais eu dans aucun autre langage de programmation à déclarer
une variable comme locale càd interne à une fonction...

en général c'est réglé par le scope...

en Ruby c'est très simple la var est en majuscule dans une fonction ou
une classe elle est read-only.

m'enfin, c'est comme ça...



--
Une Bévue