我们如何为一个未定义的变量添加一个检查,例如:
function A(val) {
if (val == undefined)
// do this
else
// do this
}
我们如何为一个未定义的变量添加一个检查,例如:
function A(val) {
if (val == undefined)
// do this
else
// do this
}
JQuery库的开发是为了简化和统一某些JavaScript功能。
但是如果您需要检查变量是否为undefined
值,则不需要发明任何特殊方法,因为JavaScript有一个typeof
运算符,它简单、快速并且跨平台:
if (typeof value === "undefined") {
// ...
}
它返回一个字符串,指示变量或其他未评估的操作数的类型。与if(value === undefined){...}
相比,这种方法的主要优势在于,typeof
如果变量value
不存在,不会引发异常。@Alberici("#myId")
是一个字符串常量,始终被定义为 "string"
类型。如果你想表示通过 $("#myId")
创建的实际 jQuery 对象,它将始终被定义为 "object"
(如果你已经正确链接了 jQuery)。可以使用 if ($("#myId").length > 0) { ... }
来判断是否存在具有 ID myId
的 DOM 元素,而检查其值是否不为空则可以使用 if ($("#myId").val()) { ... }
。这些语句都与本问题主题无关。 - VisioN$.type(selector)=== 'undefined'
来检查undefined
值。来源:https://api.jquery.com/jQuery.type/ - Tânvalue === undefined
如果 value
变量不存在将会引发异常。因此在实际应用中完全取决于您使用什么。 - VisioN === undefined
比较: if(val === undefined)
这是因为 val
始终存在(它是一个函数参数)。 if(typeof val === 'undefined')
以避免在val
不存在的情况下引发异常。请注意,typeof始终返回一个字符串,如果变量根本不存在,则不会产生错误。
function A(val){
if(typeof(val) === "undefined")
//do this
else
//do this
}
===
而不是 ==
。 - Sreeram我知道我回答这个函数有点晚了,但jQuery有一个内置函数可以做到这一点
if(jQuery.type(val) === "undefined"){
//Some code goes here
}
请参考jquery.type的jquery API文档了解相关信息。
function A(val)
{
if(val || "")
//do this
else
//do this
}
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
}
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')
}
})
检查是否未定义
if(typeof myVal === "undefined") {
//some code
}
检查是否为undefined或null或空或false或0
if(!myVal) {
// some code
} else {
// myVal is flawless
}
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);
}
}
试试这个~ 全类型检查器