如何在jQuery中检查'undefined'值

Gau*_*rav 164 javascript jquery undefined

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

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

function A(val) {
  if (val == undefined) 
    // do this
  else
    // do this
}
Run Code Online (Sandbox Code Playgroud)

Vis*_*ioN 362

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

但是,如果需要根据undefined值检查变量,则无需创建任何特殊方法,因为JavaScript具有typeof简单,快速且跨平台的运算符:

if (typeof value === "undefined") {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

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

  • @nahum jQuery是一个JavaScript库.[***这不是一种不同的编程语言.***](http://meta.stackexchange.com/a/48195/187073) (11认同)
  • 大声笑你真的在评论这个吗?我知道是同一个男人.但我想他想知道jQuery中是否存在某种方法,如$ .isUndefined(Object); 并返回值true或false.typeof只是没有任何框架的javascript. (9认同)
  • @Alberici`("#myId")`只不过是一个**字符串**常量.它将始终被定义并具有"string"类型.如果你的意思是用`$("#myId")`创建的实际*jQuery对象*,它将始终被定义为``object``(如果你正确链接了jQuery).ID为"myId"的DOM元素的存在可以使用`if($("#myId").length> 0){...}`进行评估,同时检查其值是否为空可以使用`if ($("#myId").val()){...}`.这些条款都没有涉及这个问题的主题. (3认同)

Thi*_*ter 26

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

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

如果你想测试一个不是参数的任意变量,即可能根本没有定义,你必须使用它if(typeof val === 'undefined')来避免异常,如果val不存在的话.


Jig*_*put 14

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

function A(val){
  if(typeof(val)  === "undefined") 
    //do this
  else
   //do this
}
Run Code Online (Sandbox Code Playgroud)


Arp*_*ita 10

我知道我迟到了回答这个函数,但是jquery有一个构建函数来执行此操作

if(jQuery.type(val) === "undefined"){
    //Some code goes here
}
Run Code Online (Sandbox Code Playgroud)

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


Roh*_*dam 5

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

 function A(val)
 {
   if(val || "") 
   //do this
 else
 //do this
 }
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助