JScrewIt (다른 솔루션 : 16117, 14747 및 5903 자)
자바 스크립트 엔진은 동일하지 않습니다. 약간의 구현 차이로 인해 브라우저에서 작동하는 코드가 다른 코드에서는 작동하지 않을 수 있습니다. JSFuck과 같은 lipogrammatic 코드의 경우 (최대한 짧게 인코딩하기 위해 핵에 의존) 비 호환성이 훨씬 더 큽니다.
예를 들어, JSFuck이 생성 한 코드는 alert("Hello World!")
Internet Explorer에서 실행되지 않습니다. 이것이 허용 가능한 제한 인 경우에도 크기를 16117 22174 자로 줄일 수 있습니다 (응답 크기가 30000 자로 제한되므로 전체 코드를 직접 포함 할 수 없음).
http://jsfiddle.net/ep2jqsj4/1/
Internet Explorer에서도 작동하지만 일부 이전 브라우저에서는 작동하지 않는 코드 는 14747자를 사용 하여 인코딩합니다.
http://jsfiddle.net/bbxfqboq/
마지막으로 현재 Firefox [업데이트] 및 Safari [종료 업데이트] 에서만 실행되는 코드 가 있으면 5903 5911 문자로 수행 할 수 있습니다 .
http://jsfiddle.net/pkyLy0j8/1/
JScrewIt으로 모든 것을 인코딩 했습니다 . Esolang ( http://esolangs.org/wiki/JSFuck) 에 나열된 JSFuck과 유사한 다른 인코더를 찾을 수 있습니다 . 나는 그것들을 모두 시험해 보았고 JScrewIt이 최고 (및 모든 브라우저에서 작동하는 유일한 것) 인 것처럼 보이지만 세부적인 작동 방식을 분석하지는 않았습니다.
흥미로운 또 다른 인코더는 6chars.js 이며 짧은 입력의 경우 더 큰 출력을 생성 alert("Hello World!")
하지만 입력이 길어지면 문자를 숫자로 인코딩하므로 다른 인코더보다 성능이 우수합니다. JSFuck에서는 숫자가 짧아 지지만 디코딩하려면 추가 오버 헤드가 필요합니다. 불행히도 6chars.js는 Chrome에서만 작동하며 아직 활발히 개발되고 있는지 말할 수 없습니다.
그러한 엔코더가 더 있는지 아는 것이 흥미로울 것입니다. 하나의 툴에서 다른 엔코더가 사용하는 방법을 결합 할 수 있다면 더 짧은 솔루션을 생성 할 수 있습니다.
$
및=
뿐만 아니라, 제발? 그렇지 않으면 발전기를 최상으로 만들 수 없다고 생각합니다.