可能重复:
在JavaScript中检测未定义的对象属性
如何确定变量是否为'undefined'或'null'
是否有标准函数来检查JavaScript中的null,undefined或blank变量?
在我的代码中,我有一个看起来像的条件
if (variable !== null && variable !== undefined) {
}
Run Code Online (Sandbox Code Playgroud)
但不是分两步完成,即检查它是否未定义且不为空.是否有一步检查取代此检查.
我有一个带3个参数的函数.我遇到的问题之一是参数之一是有时未定义的Object值的属性(即它接受thing.foo.bar,有时thing.foo未定义,因此它无法访问bar).
这是怎么回事?在函数的声明中,我有一个条件检查:
if (!parameterName),但浏览器(Chrome)仍然抛出一个错误,它无法读取undefined 的bar属性.
为什么isNaN()JavaScript中有一个函数,isUndefined()必须写成:
typeof(...) != "undefined"
Run Code Online (Sandbox Code Playgroud)
我有没有看到一点?
在我看来,写这个而不仅仅是非常难看isUndefined(testValue).
我有一个窗口,在关闭之前我刷新底层页面.
if(opener && typeof(opener.Refresh) != 'undefined')
{
opener.Refresh();
}
Run Code Online (Sandbox Code Playgroud)
如果我离开原始的开始页面,此代码将抛出"权限被拒绝"错误.
调试代码显示typeof(opener.Refresh)等于"未知"而不是预期的"未定义".
据我所知,"未知"不是其中一个返回值typeof,那么该值的返回方式和原因是什么?
更多的信息
我通过将检查更改为以下来避免错误:
if(opener && typeof(opener.Refresh) == 'function')
Run Code Online (Sandbox Code Playgroud)
但是这样的例子(在javascript中检测未定义的对象属性)似乎并未将"未知"因素纳入等式中.
我正在构建一个用于解析的node刮刀.这是更多或一个香草javascript问题.在我的一部分中,我将一些内容加载到一个变量中,然后检查变量,如下所示:cheerioDOMlength
var theHref = $(obj.mainImg_select).attr('href');
if (theHref.length){
// do stuff
} else {
// do other stuff
}
Run Code Online (Sandbox Code Playgroud)
这很好用,直到我遇到一个$(obj.mainImg_select).attr('href')不存在的URL .我认为我的theHref.length支票会解释这个并跳过else: do other stuff声明,但我得到了:
TypeError: Cannot read property 'length' of undefined
我在这里做错了什么,我该如何解决这个问题?
Html5 Boilerplate使用以下技巧回退到本地存储的JQuery,如果从谷歌CDN抓取它失败:
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
Run Code Online (Sandbox Code Playgroud)
你会如何实现这个技巧来为jQuery UI执行相同的技巧?
在javascript中:
d={one: false, two: true}
d.one
d.two
d.three
Run Code Online (Sandbox Code Playgroud)
我希望能够区分d.one和d.three.默认情况下,它们都评估为false,但在我的情况下,它们不应该被视为相同.
我想检查一下DOM元素的特定属性是否未定义 - 我该怎么做?
我试过这样的事情:
if (marcamillion == undefined) {
console.log("Marcamillion is an undefined variable.");
}
ReferenceError: marcamillion is not defined
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,引用错误告诉我该变量未定义,但我的if检查显然不起作用,因为它生成标准js ReferenceError而不是我正在寻找的错误消息console.log.
编辑1
或者更好的是,如果我试图确定元素的属性是否未定义如下:
$(this).attr('value')
什么是确定是否未定义的最佳方法?
我按照以下逻辑检查变量是否未定义:
if (variable==undefined){
////implementation
}
Run Code Online (Sandbox Code Playgroud)
但发现在某些情况下它没有按预期运行.所以,试过这种方法,
if(typeof(variable) == "undefined"){
/////implementation
}
Run Code Online (Sandbox Code Playgroud)
哪一个最可靠?
我有一个组件可以user从它的authprop中解构:
const Profile = ({
auth: {user}
}) => {...}
Run Code Online (Sandbox Code Playgroud)
问题是当我在开发时,Nodemon 会在我保存任何更改时不断刷新我的页面。当组件尝试挂载时,它会抛出一个错误,它无法user从中解构,auth因为此时auth为空(直到我导航该站点并重新登录)。
有没有一种优雅的方法来处理这个问题?我看了这篇文章,但我不能做类似的事情const { user } = auth || {}。嗯.. 我的意思是,我可以,但我想从 props 中解构,而不是const { user } = auth || {}在函数体中。
javascript ×9
undefined ×3
jquery ×2
cdn ×1
ecmascript-6 ×1
nan ×1
performance ×1
reactjs ×1
typeof ×1