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

然而,如果你需要根据 undefined值检查一个变量,没有必要发明任何特殊的方法,因为 JavaScript 有一个 typeof运算符,它是简单、快速和跨平台的:

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 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

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

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
}