Javascript 如何检查';未定义';jQuery中的值

Javascript 如何检查';未定义';jQuery中的值,javascript,jquery,undefined,Javascript,Jquery,Undefined,可能重复: 如何为未定义的变量添加检查,如: function A(val) { if (val == undefined) // do this else // do this } JQuery库是专门为简化和统一某些JavaScript功能而开发的 但是,如果需要根据未定义的值检查变量,则无需发明任何特殊方法,因为JavaScript有一个简单、快速且跨平台的运算符: if (typeof value === "undefined") { // ...

可能重复:

如何为未定义的变量添加检查,如:

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

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

但是,如果需要根据
未定义的
值检查变量,则无需发明任何特殊方法,因为JavaScript有一个简单、快速且跨平台的运算符:

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

它返回一个字符串,指示变量或其他未赋值操作数的类型。与
if(value==undefined){…}
相比,此方法的主要优点是,如果变量
value
不存在,
typeof
将不会引发异常。

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

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

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

这是因为
val
始终存在(它是一个函数参数)


如果您想测试一个不是参数的任意变量,即可能根本没有定义,您必须使用
If(typeof val==“undefined”)
以避免在
val
不存在的情况下出现异常。

您可以使用速记技术检查它是否未定义或为空

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

希望这将对您有所帮助

我知道我回答这个函数已经晚了,但是jquery有一个内置函数来完成这个任务

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

请参阅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
”时,
警报(typeof obj)
返回
对象
,即使obj未定义。 因为obj是
对象的类型
它返回的
对象
,而不是
未定义的

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

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

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

我不确定这是最好的解决方案,但它工作得很好:

if($someObject['length']!=0){
    //do someting
}
尝试此~all type checker

您可以使用双向
if (value === undefined) {
    // ...
}
1)
if(val==null)

2)
如果(val===undefine)

用于字符串比较,我认为我们需要使用
==
而不是
==
@Sreeram它们都进行比较,只是方式不同而已……这将起作用fine@nahumjQuery是一个JavaScript库。哈哈,天哪,你真的在评论这个吗??我知道是同一个人。但我猜他想知道jQuery中是否存在某种方法,比如$.isUndefined(Object);并返回值true或false。typeof只是没有任何框架的javascript。我的一个问题是:如果你正在做这样的
(“#myId”)
,请确定你真正需要什么:a<代码>类型(“#myId”)==“未定义”
b。或者:
typeof(“#myId”).val()==“undefined”
@Alberici
(“#myId”)
只是一个字符串常量。它将始终被定义并具有类型为
“string”
。如果您是指使用
$(“#myId”)
创建的实际jQuery对象,则它将始终被定义为
“object”
(如果jQuery链接正确)。ID为
myId
的DOM元素的存在可以通过
if($(“#myId”).length>0{…}
来评估,而检查其值是否为空可以通过
if($(“#myId”).val(){…}
来完成。这两个子句实际上都与此问题的主题无关。@user3284463如回答中所述,如果
value
变量不存在,simple
value===undefined
将引发异常。所以,在现实生活中使用什么完全取决于你。可能的复制品
if (value === undefined) {
    // ...
}