Javascript null 检查未按预期工作

标签 javascript angularjs null-check

我使用 AngularJS 作为框架,并连接到 Web 服务来获取一些 JSON 数据。我有以下代码:

$login.onlineLogin($scope.credentials).
    success(function (data, status, headers, config) {

        if (data !== null ) {
            console.log('Successful Login!');
            console.log('Returned data: ' + data);
        } else {
            console.log('Failed to Login...');
        }

    }).
    error(function (data, status, headers, config) {
        console.log('HTTP Error...');
    });

现在,当 HTTP 调用返回时,状态仍可能为 200:OK,但它返回的对象可能为 null,例如在用户提供了错误的用户凭据的情况下。所以我期望在这种情况下发生的是,如果对象不为空,它将打印出“成功登录!”然后打印出该对象。

但是,现在发生的情况是我使用了一些伪造的凭据,因此 Web 服务返回 null。但仍然是“登录成功!”被打印,然后在打印“返回的数据:null”之后......这没有意义。如果数据为空,它根本不应该出现在该代码块中?

最佳答案

而不是

if (data !== null ) {
    .....
}

用这个

if(data) {
    ....
}

这将检查空字符串 ("")、nullundefinedfalse 和数字0NaN

关于Javascript null 检查未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32196972/

相关文章:

javascript - 如果它具有表单元素,如何防止 Bootstrap 下拉菜单切换回来

lua - 如何使用 redis-scripto 和 redis DB 在 LUA 中执行 null\nil 检查?

C#,多个 == 运算符重载,没有模糊的 null 检查

javascript - 如何在用户执行 "scroll"或 "touch"或 "Click"事件时关闭移动 View 中的侧边栏

javascript - 将文本框值传递给 JavaScript 函数

javascript - 如何在 findAll 上的 node.js Sequelize 中具有多个关联/条件/包含

windows - 使用 JScript 查找操作系统名称/版本

javascript - 在Coffeescript中抽象出两行代码

json - 在Elasticsearch中,有没有一种方法可以动态构建并传递JSON查询对象?