可能重复:
Detecting an undefined object property in JavaScript
javascript undefined compare
我们如何为未定义的变量添加检查,例如:
function A(val) {
if (val == undefined)
// do this
else
// do this
}
答案 0 :(得分:348)
JQuery库专门用于简化和统一某些JavaScript功能。
但是,如果您需要针对undefined
值检查变量,则无需创建任何特殊方法,因为JavaScript具有typeof
运算符,该运算符简单,快速且跨平台:
if (typeof value === "undefined") {
// ...
}
返回一个字符串,指示变量或其他未评估操作数的类型。与if (value === undefined) { ... }
相比,此方法的主要优点是typeof
在变量value
不存在的情况下永远不会引发异常。
答案 1 :(得分:25)
在这种情况下,您可以使用=== undefined
比较:if(val === undefined)
这是有效的,因为val
总是存在(它是一个函数参数)。
如果你想测试一个不是参数的任意变量,也就是说可能根本没有定义,你必须使用if(typeof val === 'undefined')
来避免在val
没有的情况下发生异常存在。
答案 2 :(得分:14)
请注意,typeof始终返回一个字符串,如果该变量根本不存在,则不会生成错误。
function A(val){
if(typeof(val) === "undefined")
//do this
else
//do this
}
答案 3 :(得分:10)
我知道我迟到了回答这个功能,但是jquery有一个构建函数来执行此操作
if(jQuery.type(val) === "undefined"){
//Some code goes here
}
请参阅jquery.type https://api.jquery.com/jQuery.type/的jquery API文档。
答案 4 :(得分:2)
您可以使用速记技术来检查它是否未定义或为空
function A(val)
{
if(val || "")
//do this
else
//do this
}
希望这会对你有所帮助
答案 5 :(得分:2)
if (value === undefined) {
// ...
}
答案 6 :(得分:1)
当我测试“typeof obj === undefined
”时,alert(typeof obj)
返回object
,即使obj未定义。
由于obj的类型为Object
,因此返回Object
,而不是undefined
。
经过几个小时的测试后,我选择了以下技术。
if(document.getElementById(obj) !== null){
//do...
}else{
//do...
}
我不确定为什么第一种技术不起作用。但是我用这个完成了我的工作。
答案 7 :(得分: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')
}
})
答案 8 :(得分:0)
我不确定这是最好的解决方案,但它运行良好:
if($someObject['length']!=0){
//do someting
}
答案 9 :(得分: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);
}
}
试试这个〜所有类型检查器
答案 10 :(得分:0)
你可以使用两种方式
1)if ( val == null )
2)if ( val === undefine )