JS는 객체가 비어 있는지 여부와 특정 속성이 있는지 여부를 어떻게 판단합니까?

첫째, js는 객체가 비어 있는지 여부를 판단합니다.

방법 1 :

let obj1 = {}
let obj2 = {a:1}
function empty(obj){
for (let key in obj){
  return false;    //非空
}
return true;       //为空
}
console.log(empty(obj1)) //true为空
console.log(empty(obj2)) //false非空

방법 2 :

let obj1 = {}
if(JSON.stringify(obj1) == "{}"){
   console.log("空对象")
}else {
   console.log("非空对象")
}

방법 3 : Object.keys (obj)는 주어진 객체 자체의 열거 가능한 속성 배열을 반환합니다.

let obj1 = {}
if (Object.keys(obj1).length == 0){   
   console.log("空对象")
}else {
   console.log("非空对象")
}

둘째, js는 객체에 특정 속성이 있는지 판단합니다.

방법 1 :. 또는 []이 속성의 값이 false, undefined, NaN, null, 0, ""인 경우이 메서드는 적용되지 않습니다.

if (obj2.a){
   console.log("对象有此属性")
}else {
   console.log("对象无此属性")
}

방법 2 : 속성이 지정된 개체 또는 프로토 타입 체인에있는 경우 in 연산자는 true를 반환하며,이 메서드는 자체 속성 만 판단해야하는 경우에는 적용 할 수 없습니다.

let obj2 = {a:1}
if ("a" in obj2){
   console.log("对象或其原型链上有此属性")
}else {
   console.log("对象或其原型链上无此属性")
}

방법 3 : obj.hasOwnProperty () 객체는 자체 속성에 속성을 포함하고 true를 반환합니다.

let obj2 = {a:1}
if (obj2.hasOwnProperty("a")){
   console.log("对象上有此属性")
}else {
   console.log("对象上无此属性")
}

추천

출처blog.csdn.net/weixin_49666910/article/details/113373931