[1일1js] in 연산자

Lee Tae-Sung·2021년 12월 13일
0

JS

목록 보기
47/56

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/in

in 연산자

in 연산자는 명시된 속성이 명시된 객체에 존재하면 true를 반환

=> python으로 주로 알고리즘을 풀다보니 in에서 엄청 헤깔렸다.
=> python의 in과 비교해

js의 in은 속성(인덱스) in 객체명 (py는 value 값)
불리언(boolean) 역시 true (py는 True)

그리고 결과적으로
=> js는 include를 쓰자

in 연산자가 조금 특이한 점은

제거되었거나 정의되지 않은 속성에 대하여 in 연산자 사용하기

in 연산자는 delete 연산자로 제거된 속성에 대하여 false를 반환합니다.

var myCar = {company: "Lamborghini", model: "Lamborghini Veneno Roadster", year: 2014};
delete myCar.company;
"company" in myCar; // false를 반환합니다.

var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
3 in trees; // false를 반환합니다.

만약 당신이 속성을 undefined로 설정하였는데 그것을 제거하지 않으면, in 연산자는 그 속성에 대하여 true를 반환합니다.
=> 헤깔리기 쉬운데 undefined도 true를 반환

var myCar = {company: "Lamborghini", model: "Lamborghini Veneno Roadster", year: 2014};
myCar.company = undefined;
"company" in myCar; // true를 반환합니다.

상속된 속성

in 연산자는 프로토타입 체인에 의하여 접근할 수 있는 속성에 대하여 true를 반환합니다.
=> 진짜 웬만하면 다 true로 반환한다고 보면 될듯 ..

"toString" in {}; // true를 반환합니다.
profile
긍정적인 에너지를 가진 개발자, 이태성입니다.

0개의 댓글