Comment passer la valeur "undefined" pour une fonction avec plusieurs paramètres?
Je veux passer la valeur "undefined" sur un multiple du paramètre de la fonction, mais sans omettre le paramètre.
Ce que je veux dire avec "sans omettre le paramètre". Je veux dire que l'on ne doit pas omettre la parm2
comme dans cet exemple:
function myFunction (parm1, parm2) {}
myFunction("abc");
Ce sera en effet faire parm2
pas défini, mais je ne suis pas autorisé à le faire de cette façon parce que j'ai besoin de spécifier d'autres paramètres APRÈS le paramètre omis, si la méthode précédente ne fonctionne pas dans les cas que je veux faire parm1
indéfini, MAIS veulent aussi avoir d'autres paramètres après celui-ci pour contenir une valeur.
J'ai essayé de résoudre le problème avec:
myFunction( ,"abc"); //doesn't seem to work
Mise à jour:
et « ce de manière fiable fonctionne maintenant.myFunction(undefined, "abc");
Toutefois, il convient de mentionner que:
Définition d'une variable à
undefined
est considéré comme une mauvaise pratique, nous
doit être à l'aide denull
à la place.
Vous devez vous connecter pour publier un commentaire.
myFunction(undefined,"abc");
cette manière, on doit travailler, quel est le problème?voir ici
Ici n'est pas défini de la documentation de mozilla, pris en charge par tous les navigateurs
kfdjhsdfgsdf
à une fonction, car il n'a probablement pas été défini, mais il y a une possibilité qu'il a une valeur et peut avoir des résultats inattendus si elle est utilisée avec l'idée qu'il n'est pas défini, alors queundefined
ne peut pas être définie et ne devrait pas avoir des résultats inattendusundefined
est considéré comme un mauvaise pratique. Vous devez passer unenull
valeur. Plus d'infos sur Quelle est la différence entre la valeur null et undefined en JavaScript?La
void
de l'opérateur semble être la façon la plus commune explicitement obtenirundefined
.Que vous pouvez l'utiliser comme ceci dans votre exemple:
C'est aussi une méthode fiable pour comparer par rapport à
undefined
qui est surveillé contreundefined
accidentellement remplacée dans les plus anciens JavaScript environnements:void
trucUne meilleure approche pourrait passer
Object
avec des attributs nommés et ensuite regarder pour ces valeurs d'attribut. De cette façon, vous n'avez pas à être dépendants du nombre d'arguments.Exemple:
Object.dummy
Object.dummy
commeundefined
.Je viens d'avoir une idée et il semble fonctionner:
Je suis sûr qu'il y a de meilleures manières, cependant je poste ce
Vous avez besoin pour gérer l'appel de la fonction avec une variable non définie dans le code de la fonction elle-même dans l'un de la manière suivante :-
Maintenant, vous pouvez appeler la fonction ci-dessus dans une des manières suivantes:-
Je pense que le plus proche que vous obtiendrez à ce passage de
null
en tant que paramètre. Ce n'est pasundefined
, mais pour la plupart des cas, il est assez proche.typeof null == "object"
qui est tout à fait misleding.typeof
. Personnellement, je trouve que c'est gênant.Essayez d'utiliser cette méthode si vous envisagez sur l'ajout d'une quantité indéfinie de paramètres:
Vous pouvez utiliser appliquer et un tableau de paramètres à passer "undefined" comme l'un des paramètres. Par exemple, vous avez voulu passer parm1 comme "undefined":
myFunction(undefined,"abc")
doit absolument travailler, à moins que quelqu'un cruel a redéfiniundefined
! Si vous voulez être sûr, il ya des dizaines de façons d'obtenir la valeur indéfinie, afin d'éviter l'hypothèse que la chose appelée "non défini" n'en fait avoir la valeur non définie:void 0
est le plus largement utilisé (compilé CoffeeScript comprend ce partout où la valeur indéfinie est nécessaire).undefined
directement à une fonction. Alors queundefined
est certainement non-inscriptible, c'est sans importance à cette question.Si c'est possible , pourriez-vous réorganiser la fonction myFunction (parm2, parm1)
ie. essayez de vous assurer qu'un possible paramètres non définis sont les derniers dans la fonction , cela pourrait ne pas fonctionner si plusieurs paramètres sont introduits.
Un moyen facile de faire cela, quand acceptable est de passer undefined. Mais mieux encore, comme suit par W3C
Javascript-les arguments manquants
Juste pour donner un exemples sur ce que @dbrin était en train d'expliquer, et @alphapilgrim l'auraient souhaité pour vérifier.
JS: