这是检查javascript中未定义值的好方法吗?

时间:2017-04-19 12:58:32

标签: javascript node.js

我目前正在从承诺过渡到异步等待。它更容易推理代码。我只是有一个问题,如果使用方式来检查undefined是好的。代码正在nodejs中使用并检查数据库。代码就是这样的。

编辑:我知道我应该抓错。我只是在这里懒惰。

// This is a hypothetical function
async function retrieveUser(userID){
  let user = await databasefetchfuction(userID);
  if(user) return user;
  return;
}

controller.getUser = async function(req,res){
 let user = await retrieveUser(req.params.userID);
 if(!user){ // Is this ok?
   return res.status(404).json();
 } 
 return res.status(200).json({ user });
}

我是这样做的,或者我应该使用user === undefined明确检查未定义?

3 个答案:

答案 0 :(得分:3)

if(!user)只要你愿意接受所有其他人都会这样做是假的,那就是假的" JS中的事情。

请参阅:All falsey values in JavaScript

答案 1 :(得分:1)

在数据库返回的情况下使用!var非常好。找不到用户但是!var返回true。

答案 2 :(得分:1)

JavaScript中的undefined值被视为假值,所以是 - 您正在以正确的方式执行此操作。如果要检查用户对象中的其他字段,则应同时检查useruser.property