220711 TIL

Parker.Park·2022년 7월 11일
0

TIL

목록 보기
29/39

220711 TIL

계속 작성할 뿐이다. 할 때는 힘들고, 돌아서면 부족한거 같아 아쉽고 그렇다. 이럴때일 수록 긍정이라는 말이 있다.

in operator

reference code들을 보면 자주 등장한다. for...in 을 사용할때 객체의 속성명을 가져올 때 사용한 것 빼고는 사용해 본 적이 없는 것 같다. 이번 기회에 한 번 알아보자.

in operator는 in안에 명시된 객체나 프로토 타입 객체안의 속성이 있는 경우 true를 반환한다.

구문

prop in 객체명
  • prop
    속성의 이름이나 배열의 인덱스를 뜻하는 문자열 또는 수의 값을 의미한다고 한다.(Symbol 또한 포함이다.)

예시

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

profile
개발자준비중

0개의 댓글