티스토리 뷰

Daylogs/Javascript

랜덤 키 생성하기

ohgyun 2011. 11. 24. 14:25
발생일: 2011.11.22

문제:
그제였나.
Facebook Javascript SDK 코드가 어떻게 구현되었나 읽어보다가,
랜덤 키를 생성하는 재밌는 코드를 발견해 메모해둔다.

해결책:
iframe을 갱신하거나, jsonp 요청을 보낼 때 사용할 용도로 랜덤 키를 생성하는데,
아래 코드가 그 메서드이다.

  guid: function () {
    return 'f' + (Math.random() * (1 << 30)).toString(16).replace('.', '');
  }

자세히 들여다보면,
  1. 'f' + : 'f' 문자열에 뒤의 것을 더할 건데, // f
  2. Math.random() : 0~1 사이의 랜덤한 수 생성에  //  0.13190673617646098 
  3. * (1 << 30) : 2의 30승을 곱하고, //  0.13190673617646098  *  1073741824  = 141633779.5
  4. .toString(16) : 16진수로 문자열로 표현한 후에, // Number(141633779.9).toString(16) = 87128f3.8
  5. .replace('.', '') : 문자열에서 닷(소수점)을 제거한다. // 'f' + 87128f38 = f87128f38

이 되는 것~

Number().toString()의 파라미터로는 2, 4, 8, 16, 32 가 지원되니,
나중에 활용핼 볼 때엔 32진수로 바꾸는 것도 좋을 것 같다.  

반응형
댓글
공지사항