快速,正确的方法来检查身体中是否存在参数

时间:2018-05-31 13:55:24

标签: node.js express

检查身体中是否存在参数的正确方法是什么?

我正在使用if(req.body.hasOwnProperty('myParam')){...},但我看到有人只是写if(req.body.myParam){...}但如果param的数值为0,则第二个选项将返回false,不是吗?

1 个答案:

答案 0 :(得分:4)

右。

如果你想检查属性是否存在,那么hasOwnProperty将完成这项工作。

使用req.body.myParam会因任何错误而返回false,例如0''falsenullundefined

另请注意,点符号和hasOwnProperty方法不具有相同的行为:

  

hasOwnProperty()方法返回一个布尔值,指示对象是否具有指定的属性作为其自己的属性(而不是继承它)。

所以它可能会让人感到困惑,例如,运行上面的代码片段:

var o = new Object();

if (o.toString) {
  console.log('Dot notation can be confusing, inherited property example : ', o.__proto__.toString);
}

if (o.hasOwnProperty('toString')) {
  // nope
} else {
  console.log("that's why the hasOwnProperty method can be preferred");
}