Si une variable est indéfinie

Duplication possible:
Le meilleur moyen de vérifier «non défini» en JavaScript?

Comment est-ce que je trouve si une variable est indéfinie?

J’ai actuellement:

var page_name = $("#pageToEdit :selected").text(); var table_name = $("#pageToEdit :selected").val(); var optionResult = $("#pageToEditOptions :selected").val(); var ssortingng = "?z=z"; if ( page_name != 'undefined' ) { ssortingng += "&page_name=" + page_name; } if ( table_name != 'undefined' ) { ssortingng += "&table_name=" + table_name; } if ( optionResult != 'undefined' ) { ssortingng += "&optionResult=" + optionResult; } 

jQuery.val () et .text () ne renverront jamais «non défini» pour une sélection vide. Il retourne toujours une chaîne vide (ie “”). .html () renverra null si l’élément n’existe pas. Vous devez faire:

 if(page_name != '') 

Pour les autres variables qui ne proviennent pas de quelque chose comme jQuery.val (), vous devez le faire:

 if(typeof page_name != 'undefined') 

Il vous suffit d’utiliser l’opérateur typeof .

if (var === undefined)

ou plus précisément

if (typeof var === 'undefined')

Notez que le === est utilisé

 function my_url (base, opt) { var retval = ["" + base]; retval.push( opt.page_name ? "&page_name=" + opt.page_name : ""); retval.push( opt.table_name ? "&table_name=" + opt.table_name : ""); retval.push( opt.optionResult ? "&optionResult=" + opt.optionResult : ""); return retval.join(""); } my_url("?z=z", { page_name : "pageX" /* no table_name and optionResult */ } ); /* Returns: ?z=z&page_name=pageX */ 

Cela évite d’utiliser typeof whatever === "undefined" . (En outre, il n’y a pas de concaténation de chaîne.)

http://constc.blogspot.com/2008/07/undeclared-undefined-null-in-javascript.html

Cela dépend de la spécificité du test. Vous pourriez peut-être sortir avec

 if(page_name){ ssortingng += "&page_name=" + page_name; } 

Vous pouvez simplement vérifier la variable directement. S’il n’est pas défini, il renverra une valeur de falsification .

 var ssortingng = "?z=z"; if (page_name) { ssortingng += "&page_name=" + page_name; } if (table_name) { ssortingng += "&table_name=" + table_name; } if (optionResult) { ssortingng += "&optionResult=" + optionResult; }