有时候获取一个对象的属性,判断是否为undefined时,无法获知是否显示地定义了undefined,需要通过 in 字符或者hasOwnProperty来判断,举例: 上图例子中,如果直接获取obj.b和obj.c都会得到undefined,无法得知b和c是否被定义过;所以需要使用in操作符来判断(hasOwnProperty同理); 需要注意的是:如果属性存在于目标对象的原型对象上,in操作符也会返回true(跟for in 操作一样),所以要按需情况选择in或者hasOwnProperty。