javascript逻辑运算符作为函数中的参数

标签 javascript

我正在读一本关于使用节点、 Backbone 和 mongodb 构建 Web 应用程序的书。我从书中获取了示例并遇到了一个代码片段,这让我感到困惑。

  var login = function(email, password, callback) {
    var shaSum = crypto.createHash('sha256');
    shaSum.update(password);
    Account.findOne({email:email,password:shaSum.digest('hex')},function(err,doc){
      callback(null!=doc);
    });
  };  

看看回调函数的参数 null!=doc,我知道在 javascript 中 null 的意思是不等于 doc,但是为什么你可以用它作为参数。

最佳答案

null!=doc 被评估为 bool 值,并将结果传递给 callback,仅此而已。

这与拥有相同:

var docIsNull = null!=doc;
callback(docIsNull);

我不确定具体方法的结果,但它只是提供带有 truefalse 的回调,无论 doc值是否为 null

我猜测,如果 docnull,则意味着未找到具有该特定密码的特定电子邮件。因此,当您调用 login 时,您可能会使用:

login("some email", "some password", function (authenticated) {
    if (authenticated) {
        // email/password found and matched
    } else {
        // no match
    }
});

关于javascript逻辑运算符作为函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500442/

相关文章:

javascript - 单击子项 jQuery 后保持菜单打开

javascript - IOS:当我尝试执行某些触摸操作时出现 "Failed: Method is not implemented"错误

javascript - 在 Reactjs 中更新状态?

javascript - 我可以从 Java 9 Nashorn 引擎运行 ECMAScript 6 吗

javascript - 使用javascript获取要在网络上打印的页数

javascript - Laravel JavaScript 将数组从后端传递到 JavaScript 中的数组

javascript - Stripe : Shipping address not submitting via Node/Express

javascript - 在 React Native 中使 View 为父级的 80% 宽度

javascript - 理解指令优先级在 Angularjs 中是如何工作的

javascript - angularjs延迟加载应用程序直到指定条件