代码之家  ›  专栏  ›  技术社区  ›  lellefood

快速、正确地检查主体中是否存在参数

  •  1
  • lellefood  · 技术社区  · 6 年前

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

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

    1 回复  |  直到 6 年前
        1
  •  4
  •   marc_s    6 年前

    正确的。

    如果要检查属性是否存在,则 hasOwnProperty 会完成任务的。

    使用 req.body.myParam 如果有任何错误,例如 0 , '' false , null undefined .

    还要注意点符号和 拥有财产 方法没有相同的行为:

    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");
    }