https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/in
in 연산자는 명시된 속성이 명시된 객체에 존재하면 true를 반환
=> python으로 주로 알고리즘을 풀다보니 in에서 엄청 헤깔렸다.
=> python의 in과 비교해
js의 in은 속성(인덱스) in 객체명 (py는 value 값)
불리언(boolean) 역시 true (py는 True)
그리고 결과적으로
=> js는 include를 쓰자
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를 반환합니다.