LCCY
  • Rss
  • Accueil
  • Articles
  • CloudOffice.fr
  • Démo E-Commerce
  • Contact
Accueil» LAMP/HTML/JS » Faut-il Utiliser Var Ou Non Pour Déclarer Une Variable Javascript

Faut-il Utiliser Var Ou Non Pour Déclarer Une Variable Javascript

Posté le 14/12/2016 par Luc dans LAMP/HTML/JS

Faut-il utiliser le mot-clé var ou non pour déclarer une variable en Javascript ? Tout dépendra de vos besoins, mais il y a une réelle différence peu documentée.

Je ne vais pas répéter ce qui est expliqué dans tous les manuels, mais ce qui ne l’est pas, et en français, pas en geek 😉

  • Toutes les variables déclarées avec var sont clairement stockées dans un espace mémoire réservé à cet usage, et ne peuvent pas être supprimées avec delete. Elles sont de plus limitée à l’usage dans le bloc/fonction dans lequel elles sont déclarées – cf portée des variables Javascript -. ou globale si déclarées à l’extérieur de tout bloc/fonction.
  • Toutes les variables non déclarées avec var sont stockées en tant qu’objets de window, et sont donc accessibles soit via leur nom – comme avec var -, soit via window.leurnom, et ceci n’importe où. Elles sont donc dans ce cas implicitement globales, et peuvent être supprimées avec delete

Un exemple de code qui m’en a fait baver – un condensé de la situation qu’on peut trouver évidemment – :

function Envoi(destinaire)
{
   var temp = destinaire;
   // on peut imaginer ici des traitements quelconques ...
   AutreFonction(function ()
   {
        console.log(temp);
   }
}

Si j’appelle la fonction Envoi(‘Toi’), que va-t-il être affiché sur la console ? Toi, évidemment, en tout cas au premier appel ..

Et si j’appelle Envoi(‘Moi’) un peu après ? On va bien sûr penser à Moi …

Et bien non, le résultat sera aléatoire, ce sera Toi ou Moi, selon le traitement que fera AutreFonction(), selon votre navigateur, selon vos traitements spécifiques, bref on ne peut dire ..

La seule parade est de supprimer temp après usage et avant un autre appel à Envoi, donc d’ajouter delete temp après console.log(temp). Mais avec cet exemple, le delete ne servira à rien. Mais en supprimant le mot-clé var, le delete aboutira ! CQFD ..

Bref, un cas d’école qui m’a fait perdre une demi-journée, mais peut-être pas si rare .. 😉

déclarer, fautil, javascript, non, ou, utiliser, var, variable

Laisser une réponse Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Code Anti-spam
Rafraîchir

*

Rechercher sur le site

Strasbourg
◉
1°
Fair
07:4516:43 CET
Feels like: -1°C
Wind: 9km/h SSW
Humidity: 82%
Pressure: 1024.7mbar
UV index: 0
MonTueWed
7/5°C
9/4°C
12/5°C
Weather forecast Strasbourg, France ▸

Votre commande

Votre commande est vide

Catégories

  • Divers
  • iPhone/iPad
  • LAMP/HTML/JS
  • Linux
  • Mac OSX
  • Mail
  • Mobilité
  • NetOffice.fr
  • Réseau
  • Windows
  • WordPress

Liens

  • CloudFiles
  • CloudOffice
  • Cysteme
  • Finder
  • iTips.fr
  • PoDo

Méta

  • Connexion
  • Flux RSS des articles
  • RSS des commentaires
  • Site de WordPress-FR

Pages

  • Articles
  • CloudOffice.fr
  • Commande
  • Conditions Générales Accès Site
  • Contact
  • Démo E-Commerce
  • No Access
  • Paiement
  • Paiement accepté
  • Panier
  • Search Results

Catégories

  • Divers
  • iPhone/iPad
  • LAMP/HTML/JS
  • Linux
  • Mac OSX
  • Mail
  • Mobilité
  • NetOffice.fr
  • Réseau
  • Windows
  • WordPress

Méta

  • Connexion
  • Flux RSS des articles
  • RSS des commentaires
  • Site de WordPress-FR

(C) CYSTEME 2013