2013-04-29 4 views
1

복잡한 문자열 연산을 수행하기 위해 연산자 만 사용하는 코드 예제와 "" 예제를 보았습니다. 기본적으로 아이디어는 ((+"+")+"")[+""]과 같은 것으로 편지 N 등을 제공합니다. 내가 찾은 곳을 잊어 버렸고 적절한 Google 키워드를 찾지 못했습니다. 누구나 연결되어 있습니까?함수 호출이없는 난독 화 코드

답변

6

기본적으로 여기에 사용 된 두 가지의 개념이있다 :

  1. 문자열 밖으로 Number을, 즉 Number(str)+str 단축되고;
  2. 숫자를 문자열로 바꾸는 것, 즉 String(n) (바로 가기는 n+"")입니다. 우리는 철저하게 표현 보면

따라서, 우리가 나타납니다 : 동일한 방법으로 자바 스크립트로 할 수있는 일들이 많이 있습니다

+"+"  === NaN 
NaN + "" === "NaN" 
+""  === 0 
"NaN"[0] === "N" 

. 하나의 재미있는 예가 다음 질문에서 제공됩니다. What are JavaScript's builtin strings?

+0

+1 동일한 두 가지 개념을 따르면 저주와 같은 IE 6-7-8 탐지 스크립트가 있습니다 :'if (! + "\ v1")' Javascript 인터프리터는 포기하기 전에 항상 무언가를하려고 시도 할 것입니다. 포기하기 전에 당신이하는 일을 정말로 알지 못한다면 다른 브라우저에서 혼란 스러울 수 있습니다. –

+0

예, 나는 그것이 어딘가에 있다는 것을 알고있었습니다. 고마워요! – georg