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

问题描述 投票:0回答:11

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

我们如何添加对未定义变量的检查,例如:

function A(val) {
  if (val == undefined) 
    // do this
  else
    // do this
}
javascript jquery undefined
11个回答
444
投票

JQuery 库是专门为了简化和统一某些 JavaScript 功能而开发的。

但是,如果您需要根据

undefined
值检查变量,则无需发明任何特殊方法,因为 JavaScript 有一个
typeof
运算符,该运算符简单、快速且跨平台:

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

它返回一个字符串,指示变量或其他未计算的操作数的类型。与

if (value === undefined) { ... }
相比,此方法的主要优点是,如果变量
typeof
不存在,
value
永远不会引发异常。


32
投票

在这种情况下,您可以使用

=== undefined
比较:
if(val === undefined)

这是有效的,因为

val
总是存在(它是一个函数参数)。

如果您想测试不是参数的任意变量,即可能根本没有定义,则必须使用

if(typeof val === 'undefined')
以避免在
val
不存在的情况下出现异常。


17
投票

请注意,typeof 始终返回一个字符串,并且如果变量根本不存在,则不会生成错误。

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

12
投票

我知道我迟到了,但 jquery 有一个内置函数可以做到这一点

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

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


5
投票

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

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

希望这对你有帮助


1
投票

当我测试“

typeof obj === undefined
”时,
alert(typeof obj)
返回
object
,即使obj未定义。 由于 obj 是
Object
的类型,因此它返回
Object
,而不是
undefined

经过几个小时的测试,我选择了以下技术。

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

我不确定为什么第一种技术不起作用。但我用这个完成了我的工作。


0
投票

如果您有元素名称而不是 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')
    }
  })

0
投票

我不确定这是最好的解决方案,但效果很好:

if($someObject['length']!=0){
    //do someting
}

0
投票
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);
    }
}

试试这个~所有类型检查器


0
投票

检查是否未定义

if(typeof myVal === "undefined") {
   //some code
}

检查是否未定义或为 null 或为空或为 false 或 0

if(!myVal) {
   // some code
} else {
   // myVal is flawless 
}

0
投票

尝试检查你的 jQuery 代码:

if (window.jQuery) { 
  console.log("Actived: jQuery");
} else {
  console.log("Disabled: jQuery");
}
© www.soinside.com 2019 - 2024. All rights reserved.