isset en javascript

isset en javascript - HTML/CSS - Programmation

Marsh Posté le 28-08-2005 à 20:18:20    

Bonjour,
 
Je recherche l'equivalent a la fonction PHP isset (Renvoye truc si la variable existe) en javascript.
C'est pour tester si des variables de formulaire existe.
 
Merci

Reply

Marsh Posté le 28-08-2005 à 20:18:20   

Reply

Marsh Posté le 28-08-2005 à 20:25:25    

J'ai trouvé !!!
Pour ce que ca interesse:

Code :
  1. function isset(variable){
  2. if ( typeof( window[variable] ) != "undefined" ) {
  3.      return true;
  4.    }
  5. else {
  6.      return false;
  7.    }
  8. }


Message édité par nonau57 le 28-08-2005 à 20:25:46
Reply

Marsh Posté le 28-08-2005 à 20:27:56    

[:pingouino]
 
Pour savoir si une variable existe ou pas en javascript il suffit de faire

if(variable){
   // elle existe
}


ou

if(!variable){
   // elle existe pas
}


[:pingouino]

Message cité 1 fois
Message édité par masklinn le 28-08-2005 à 20:28:14

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 05-08-2008 à 15:34:23    

Merci nonau pour l'astuce, elle vient juste de me servir :)
 
Je voulais aussi faire comme Masklinn mais j'avais des erreurs sous internet explorer. Avec la tienne, tout va pour le mieux :D


---------------
Mon site de tutoriels : http://www.tutomaker.com Ma config: P35-DS4 / Q6600@3.2 / Crucial 2x1Gb 1066 5-5-5-15 / Raid0 Sam 2x320Go / Corsair HX 520w / NH-U12F / ATI 4870 / Antec P182 / Sam 204B / Pioneer DVR-212
Reply

Marsh Posté le 04-11-2008 à 18:13:44    

masklinn a écrit :

[:pingouino]
 
Pour savoir si une variable existe ou pas en javascript il suffit de faire

if(variable){
   // elle existe
}


ou

if(!variable){
   // elle existe pas
}


[:pingouino]


 
Mais bien sur...
 
Voici une fonction qui remplace correctement isset :
 

Code :
  1. function isset(  ) {
  2.     // http://kevin.vanzonneveld.net
  3.     // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  4.     // +   improved by: FremyCompany
  5.     // +   improved by: Onno Marsman
  6.     // *     example 1: isset( undefined, true);
  7.     // *     returns 1: false
  8.     // *     example 2: isset( 'Kevin van Zonneveld' );
  9.     // *     returns 2: true
  10.    
  11.     var a=arguments; var l=a.length; var i=0;
  12.    
  13.     if (l==0) {
  14.         throw new Error('Empty isset');
  15.     }
  16.    
  17.     while (i!=l) {
  18.         if (typeof(a[i])=='undefined' || a[i]===null) {
  19.             return false;
  20.         } else {
  21.             i++;
  22.         }
  23.     }
  24.     return true;
  25. }


 
source : http://kevin.vanzonneveld.net/tech [...] hps_isset/

Reply

Marsh Posté le 06-11-2008 à 02:47:21    

php.js la deuxieme plus grande invention de l homme apres le khakha biodegradable [:romf]


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 06-11-2008 à 07:29:48    

johnstyle a écrit :

 

Mais bien sur...

 

Voici une fonction qui remplace correctement isset :

 
Code :
  1. function isset(  ) {
  2.     // http://kevin.vanzonneveld.net
  3.     // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  4.     // +   improved by: FremyCompany
  5.     // +   improved by: Onno Marsman
  6.     // *     example 1: isset( undefined, true);
  7.     // *     returns 1: false
  8.     // *     example 2: isset( 'Kevin van Zonneveld' );
  9.     // *     returns 2: true
  10.    
  11.     var a=arguments; var l=a.length; var i=0;
  12.    
  13.     if (l==0) {
  14.         throw new Error('Empty isset');
  15.     }
  16.    
  17.     while (i!=l) {
  18.         if (typeof(a[i])=='undefined' || a[i]===null) {
  19.             return false;
  20.         } else {
  21.             i++;
  22.         }
  23.     }
  24.     return true;
  25. }
 

source : http://kevin.vanzonneveld.net/tech [...] hps_isset/


Nan mais JS c'est pas PHP okay

 


Ici on parle bien de variables globales, et une variable globale est automatiquement une propriété de l'objet window
il suffit juste de faire

 
Code :
  1. if (!window.myvariable) {
  2. // ici tu fais ta tambouille
  3. }
 

Ce que masklinn a oublié de préciser dans sa réponse, c'est que si tu dois directement tester l'existance d'une variable (qu'on soit dans une fonction ou directement à la racine), ta variable doit avoir été déclarée avant dans le code ex :

 
Code :
  1. var myVar;
  2. if (myVar) {
  3.    //do stuff
  4. }
 


En tout cas, ta balle fonction isset de merde, fait exactement ce que je vient de faire en 10 lignes de plus [:petrus75]
car dans tous les cas :

 
Code :
  1. if (isset(mavar))


pêtera aussi bien une erreur à la gueule que :

Code :
  1. if (var)


si cette variable n'a pas été déclarée avant

 


Message édité par gatsu35 le 06-11-2008 à 07:30:47
Reply

Marsh Posté le 23-08-2009 à 20:15:04    

masklinn a écrit :

Pour savoir si une variable existe ou pas en javascript il suffit de faire

Code :
  1. if(variable){
  2.    // elle existe
  3. }


ou

Code :
  1. if(!variable){
  2.    // elle existe pas
  3. }


 

Euh, je voudrai pas paraître bête, mais...

 

Prenons l'exemple d'une variable my_bool :

Code :
  1. my_bool = false;
 

Si j'applique le

Code :
  1. if(!variable){
  2.    // elle existe pas
  3. }


Ca va me dire qu'elle n'existe pas, alors qu'elle existe... Un boolean à false, c'est quand même courant et pourtant ça marche pas avec ton truc !


Message édité par jak0 le 25-08-2009 à 00:20:30
Reply

Marsh Posté le 24-08-2009 à 10:46:42    

Ya du code smell là-dessous [:pingouino]

Reply

Marsh Posté le 25-08-2009 à 00:21:27    

du "code smell" ???
 
Personnellement ma fonction isset, c'est :

Code :
  1. function isset (variable) {
  2.   return (typeof variable != 'undefined');
  3. }


Et ça marche suffisament bien


Message édité par jak0 le 25-08-2009 à 00:25:05
Reply

Marsh Posté le 25-08-2009 à 00:21:27   

Reply

Marsh Posté le 25-08-2009 à 19:28:29    

ouais ou alors plus intelligent tu fais juste :  

Code :
  1. if (myvar!=null) {
  2. }


 
Voila tu as autant de code que si tu écrivais isset
 
faudrait arrêter les conneries et arrêter de transposer toute la merde de PHP en JS


---------------
Blablaté par Harko
Reply

Marsh Posté le 25-08-2009 à 19:57:25    

Ou sinon pour vraiment tester l'existence d'une propriété d'un objet (dont les variables globales font partie de l'objet window), on peut aussi utiliser :

Code :
  1. if ("property" in myObject) {
  2.  // La propriété myObject.property existe et peut éventuellement valoir null, 0, false...
  3. }
  4. // Pour les variables globales
  5. if ("varGloable" in window) {}


Jamais testé avec les variables locales, mais à moins de faire du code spaghetti avec des fonctions de 2000 lignes, je ne pense pas que ça pose problème.
 
Et quand tu n'as plus besoin de ta propriété :

Code :
  1. delete myObject.property

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed