for each in이나 for in 구문은 많이들 써보셨을 겁니다.


오늘 우연히 if in 구문을 알게 됐는데 성능이 매우 좋네요~


뭐 사용법은 간단합니다.


보통 Object의 멤버인지 아닌지를 판단하려면 


if( obj[ prop ] != null )
     trace"has." );


또는


if( obj.hasOwnProperty( prop ) )
     trace"has." );


를 사용하죠.


하지만 if in 문을 사용하면 다음과 같습니다.


if( prop in obj )
     trace"has." );


성능도 매우 좋아서


if( obj[ prop ] != null )
 > 80 ms


if( obj.hasOwnProperty( prop ) )
 > 134 ms


if( prop in obj )
 > 49 ms


위 두 조건문 보다 월등히 빠른 속도를 보여줬습니다.


Object, Dictionary 에서 search가 가능합니다.


굿굿




p.s) 몰랐던 분 손~ ㅋㅋ (일단 저 먼저 손~)




For the better.

저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 메타콰이어 2013.05.07 14:57 신고

    조..좋은 구문이네여 +_+乃
    처음 봐여 ㅋㅋㅋ

  2. 이재훈 2013.05.07 15:50 신고

    오... ;;;; 정말 몰랐던.... ;;ㅎ

  3. Favicon of http://kuimoani.tistory.com 귀뫄뉘 2013.05.08 10:18 신고

    우와 훨씬 편하고 좋네요~

  4. blaxk 2013.05.09 10:19 신고

    Javascript로 속도 테스트 경우 전혀 반대의 결과가 나오네요.
    obj[prop] > obj.hasOwnProperty( prop ) > if in

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2013.05.09 15:41 신고

      오호? 그렇군요~ JavaScript는 브라우져마다 내부 구현 방식이 달라서 그런가보네요. 신기하네요.

  5. Favicon of http://lpesign.tistory.com LPesign 2013.05.10 09:04 신고

    잘 안쓰이는 구문이였구나;

  6. Favicon of http://drumcap.com drumcap 2013.09.05 17:11 신고

    우연히 지나가다 수정이 필요한 부분을 말씀드립니다. ^^
    정확히 이야기 하자면 if in 이 아니고 그냥 in 입니다.
    "str" in obj => Boolean 이구요. obj.hasOwnProperty("str") 과 동일하죠.

+ Recent posts

티스토리 툴바