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
变量不存在,simplevalue===undefined
将引发异常。所以,在现实生活中使用什么完全取决于你。可能的复制品
if (value === undefined) {
// ...
}