相关疑难解决方法(0)

是否有标准函数来检查JavaScript中的null,undefined或blank变量?

是否有一个通用的JavaScript函数来检查变量是否有值并确保它不是undefinednull?我有这个代码,但我不确定它是否涵盖了所有情况:

function isEmpty(val){
    return (val === undefined || val == null || val.length <= 0) ? true : false;
}
Run Code Online (Sandbox Code Playgroud)

javascript null undefined

2088
推荐指数
24
解决办法
163万
查看次数

测试是否存在嵌套的JavaScript对象键

如果我有一个对象的引用:

var test = {};
Run Code Online (Sandbox Code Playgroud)

可能(但不是立即)有嵌套对象,如:

{level1: {level2: {level3: "level3"}}};
Run Code Online (Sandbox Code Playgroud)

在最深层嵌套的对象中测试密钥是否存在的最佳方法是什么?

alert(test.level1);收益率undefined,但alert(test.level1.level2.level3);失败了.

我现在正在做这样的事情:

if(test.level1 && test.level1.level2 && test.level1.level2.level3) {
    alert(test.level1.level2.level3);
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方法.

javascript nested properties object

616
推荐指数
19
解决办法
21万
查看次数

JavaScript,优雅的方法来检查NULL/undefined的嵌套对象属性

一个"问题",我时不时地有一个对象,例如user = {},通过使用应用程序的过程,这将被填充.让我们说一下,在AJAX调用之后或者我这样做的事情:

user.loc = {
    lat: 50,
    long: 9
}
Run Code Online (Sandbox Code Playgroud)

在另一个地方,我想检查是否user.loc.lat存在.

if (user.loc.lat) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

如果它不存在,这将导致错误.如果user.loc.latundefined,user.loc当然也是undefined如此.

"Cannot read property 'lat' of null" - Dev Tools error
Run Code Online (Sandbox Code Playgroud)

这意味着我需要像这样检查:

if (user.loc) {
    if (user.loc.lat) {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

if (user.loc && user.loc.lat) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

这不是很漂亮,我的对象越大越好 - 显然(想象10级嵌套).它种烧伤我,if(user.loc.lat)不只是返回false,如果user.locundefined也.

检查这种情况的理想方法是什么?

javascript object javascript-objects

96
推荐指数
4
解决办法
6万
查看次数

JS检查深层对象属性是否存在

我试图找到一种优雅的方法来检查对象中是否存在某些深度属性.因此,实际上试图避免对未定义的怪异保护性检查.

if ((typeof error !== 'undefined') && 
  (typeof error.responseJSON !== 'undefined') &&
  (typeof error.responseJSON.error) && 
  (typeof error.responseJSON.error.message)) {
      errorMessage = error.responseJSON.error.message;
}
Run Code Online (Sandbox Code Playgroud)

我正在考虑的是一个方便功能

if (exists(error.responseJSON.error.message)) { ... }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?为方便起见,使用下划线 - 库是可以的解决方案.

javascript undefined

7
推荐指数
2
解决办法
4404
查看次数