一个variables是否是undefined

可能重复:
在JavaScript中检查“undefined”的最佳方法是什么?

我如何find一个variables是不确定的?

我目前有:

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

jQuery.val()和.text()永远不会返回空的select“未定义”。 它总是返回一个空string(即“”)。 如果元素不存在,.html()将返回null。您需要这样做:

 if(page_name != '') 

对于不是来自jQuery.val()之类的其他variables,您可以这样做:

 if(typeof page_name != 'undefined') 

你只需要使用typeof操作符。

if (var === undefined)

或更确切地说

if (typeof var === 'undefined')

请注意使用===

 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 */ 

这避免了使用typeof whatever === "undefined" 。 (另外,没有任何string连接。)

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

取决于你想要testing的具体程度。 你也许可以逃避

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

你可以直接检查variables。 如果没有定义,它将返回一个虚假值。

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