계속 작성할 뿐이다. 할 때는 힘들고, 돌아서면 부족한거 같아 아쉽고 그렇다. 이럴때일 수록 긍정이라는 말이 있다.
reference code들을 보면 자주 등장한다. for...in 을 사용할때 객체의 속성명을 가져올 때 사용한 것 빼고는 사용해 본 적이 없는 것 같다. 이번 기회에 한 번 알아보자.
in operator는 in안에 명시된 객체나 프로토 타입 객체안의 속성이 있는 경우 true를 반환한다.
prop in 객체명
let abc1 = new Array("a", "b", "c")
console.log(abc1) //[ 'a', 'b', 'c' ]
console.log("0" in abc1) //true
console.log("1" in abc1) //true
//값이 아닌 인덱스 넘버 즉 속성 명을 명시해야 한다.
console.log("4" in abc1) //false
console.log("d" in abc1) //false
//Array property에 length를 가지고 있다.
console.log("length" in abc1) //true
//Array.prototype에는 Symbol.iterator 함수가 있다.
console.log(Symbol.iterator in abc1) //true
//이미 정의된 객체이다.
console.log("PI" in Math) //true
속성명으로 연산하기 때문에 설정된 값과는 무관하다. 참고하자.
let San = {
"name" : "Seorak",
"height" : 5604
}
San.height = undefined
console.log(San) //{ name: 'Seorak', height: undefined }
console.log("height" in San) //true
//속성을 제거할 경우 false를 반환한다.
delete San.height
console.log("height" in San) //false
prototype에 대해서도 작동한다.
console.log("toString" in {}) //true
정리했으니 이제 적용할 일만 남았구나.
[in 연산자, MDN, 2022년07월15일]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/in