变量是否未定义

Phi*_*son 179 jquery

可能重复:
在JavaScript中检查"未定义"的最佳方法是什么?

如何查找变量是否未定义?

我目前有:

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; }
Run Code Online (Sandbox Code Playgroud)

Sco*_*CSD 304

对于空选择,jQuery.val()和.text()永远不会返回'undefined'.它总是返回一个空字符串(即"").如果元素不存在,.html()将返回null.您需要执行以下操作:

if(page_name != '')
Run Code Online (Sandbox Code Playgroud)

对于其他不是来自jQuery.val()之类的变量,你会这样做:

if(typeof page_name != 'undefined')
Run Code Online (Sandbox Code Playgroud)

你只需要使用typeof运算符.

  • if(undefinedVar)将抛出错误,但if(someObj.undefinedProperty)不会抛出错误.在后一种情况下,您也可以跳过typeof并使用=== undefined(或!==),不带引号. (14认同)

Rog*_*ger 114

if (var === undefined)

或者更确切地说

if (typeof var === 'undefined')

注意===使用

  • 请使用`typeof(var)==='undefined'`作为`undefined`在JavaScript中不是常量. (67认同)
  • `typeof`不是函数 - 请不要使用括号. (26认同)
  • 那么这个答案是否有效?被赞成票和评论搞糊涂了 (6认同)
  • @Roy你应该选择`if(typeof var ==='undefined')` (4认同)

Ric*_*ler -7

您可以直接检查变量。如果未定义,它将返回一个值。

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; }
Run Code Online (Sandbox Code Playgroud)