如何检查jQuery中的“未定义”值

可能重复:
在JavaScript中检测未定义的对象属性
javascript未定义比较

我们如何添加一个未定义variables的检查,如:

function A(val) { if (val == undefined) // do this else // do this } 

JQuery库是专门为简化和统一某些JavaScriptfunction而开发的。

但是,如果您需要针对undefined值检查variables,则无需发明任何特殊方法,因为JavaScript具有简单,快速和跨平台的typeof运算符:

 if (typeof value === "undefined") { // ... } 

它返回一个string,指示variables的types或其他未评估的操作数。 与if (value === undefined) { ... }相比,这种方法的主要优点是,如果variablesvalue不存在, typeof将永远不会引发exception。

在这种情况下,您可以使用=== undefined比较: if(val === undefined)

这是有效的,因为val总是存在的 (这是一个函数参数)。

如果你想testing一个不是参数的任意variables,也就是说可能根本没有定义,那么你就必须使用if(typeof val === 'undefined')来避免在val不存在的情况下的exception。

请注意,typeof总是返回一个string,如果该variables根本不存在,则不会生成错误。

 function A(val){ if(typeof(val) === "undefined") //do this else //do this } 

我知道我迟到回答函数,但jQuery有一个build立function来做到这一点

 if(jQuery.type(val) === "undefined"){ //Some code goes here } 

请参阅jquery.type的jquery API文档https://api.jquery.com/jQuery.type/

您可以使用简写技术来检查它是否未定义或为空

  function A(val) { if(val || "") //do this else //do this } 

希望对你有帮助

当我testing“ typeof obj === undefined ”时,即使obj未定义, alert(typeof obj)也会返回object 。 由于obj是Objecttypes,它返回的Object ,不是undefined

所以经过几个小时的testing,我select了下面的技术。

 if(document.getElementById(obj) !== null){ //do... }else{ //do... } 

我不知道为什么第一种技术不起作用,但我完成了我的工作。

如果你有元素的名字,而不是id,我们可以在下面的所有文本元素(例如)上实现未定义的检查,并填充默认值,如0.0:

 var aFieldsCannotBeNull=['ast_chkacc_bwr','ast_savacc_bwr']; jQuery.each(aFieldsCannotBeNull,function(nShowIndex,sShowKey) { var $_oField = jQuery("input[name='"+sShowKey+"']"); if($_oField.val().trim().length === 0){ $_oField.val('0.0') } }) 

我不知道这是最好的解决scheme,但它工作正常:

 if($someObject['length']!=0){ //do someting } 
 function isValue(value, def, is_return) { if ( $.type(value) == 'null' || $.type(value) == 'undefined' || $.trim(value) == '' || ($.type(value) == 'number' && !$.isNumeric(value)) || ($.type(value) == 'array' && value.length == 0) || ($.type(value) == 'object' && $.isEmptyObject(value)) ) { return ($.type(def) != 'undefined') ? def : false; } else { return ($.type(is_return) == 'boolean' && is_return === true ? value : true); } } 

试试这个〜所有types的检查器