전달된 JSON 데이터에 특정 필드가 있는지 확인하는 방법은 무엇입니까?
1.obj["key"] != undefine
키가 정의되어 있으면 매우 2입니다. 할당이 정의되지 않은 경우 이 문장에 문제가 있습니다.
2.!("key" in obj)
3.obj.hasOwnProperty("key")
이 두 가지 방법이 더 좋고 권장됩니다.
원래 답변:
실제로 정의되지 않음을 확인하는 것은 키가 존재하는지 테스트하는 정확한 방법이 아니지만 값이 실제로 정의되지 않은 경우에는 어떻게 될까요? 🎜>var obj = { key: undefine };
obj["key"] != undefine // false이지만 키가 존재합니다.
대신 in 연산자를 사용해야 합니다:
obj의 "key" // 실제 값에 관계없이 true
키가 존재하지 않는지 확인하려면 괄호를 사용해야 합니다.
!("key " in obj) // "key"가 객체에 없으면 true
!"key" in obj // 오류! "false in obj"와 동일
또는 특별히 원하는 경우 객체 인스턴스의 속성(상속된 속성이 아닌)을 테스트합니다. usehasOwnProperty:
obj.hasOwnProperty("key") // true