可能的复制品: 在 JavaScript 中检测未定义的对象属性 Javascript 未定义比较
如何为未定义的变量添加检查,比如:
function A(val) { if (val == undefined) // do this else // do this }
JQuery 库是专门为简化和统一某些 JavaScript 功能而开发的。
然而,如果你需要根据 undefined值检查一个变量,没有必要发明任何特殊的方法,因为 JavaScript 有一个 typeof运算符,它是简单、快速和跨平台的:
undefined
typeof
if (typeof value === "undefined") { // ... }
它返回一个字符串,指示变量或其他未求值操作数的类型。与 if (value === undefined) { ... }相比,这种方法的主要优点是,如果变量 value不存在,则 typeof永远不会引发异常。
if (value === undefined) { ... }
value
注意 typeof 总是返回一个字符串,如果变量根本不存在,它不会生成错误。
function A(val){ if(typeof(val) === "undefined") //do this else //do this }
在这种情况下,您可以使用 === undefined比较: if(val === undefined)
=== undefined
if(val === undefined)
这是因为 val始终是 存在(它是一个函数参数)。
val
如果您想测试一个非参数的任意变量,也就是说可能根本没有定义,那么您必须使用 if(typeof val === 'undefined')来避免在 val不存在的情况下出现异常。
if(typeof val === 'undefined')
您可以使用速记技术来检查它是未定义的还是空的
function A(val) { if(val || "") //do this else //do this }
希望这个能帮到你
我知道我回答这个函数有点晚了,但是 jquery 有一个内建函数可以做到这一点
if(jQuery.type(val) === "undefined"){ //Some code goes here }
请参考 jquery.type https://api.jquery.com/jQuery.type/的 jquery API 文档以获得相同的信息。
如果你有元素的名称而没有 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') } })
当我测试“ typeof obj === undefined”时,alert(typeof obj)返回 object,即使 obj 是未定义的。 因为 obj 是 Object的类型,它返回的是 Object,而不是 undefined。
typeof obj === undefined
alert(typeof obj)
object
Object
因此,经过几个小时的测试,我选择了以下技术。
if(document.getElementById(obj) !== null){ //do... }else{ //do... }
我不知道为什么第一个技巧不起作用,但是我用它完成了我的工作。
我不确定这是否是最佳解决方案,但它的效果很好:
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); } }
试试这个 ~ all 类型检查器
检查是否未定义
if(typeof myVal === "undefined") { //some code }
检查是否未定义或 null 或空或 false 或0
if(!myVal) { // some code } else { // myVal is flawless }