JScrewIt (โซลูชันที่แตกต่าง: 16117, 14747 และตัวอักษร 5903)
เอ็นจิ้น Javascript ไม่เหมือนกัน ความแตกต่างเล็กน้อยในการติดตั้งอาจทำให้โค้ดที่ใช้งานในเบราว์เซอร์ไม่ทำงานในอีกอันหนึ่ง ในกรณีของรหัส lipogrammatic เช่น JSFuck ซึ่งส่วนใหญ่อาศัยแฮ็กในการเข้ารหัสสิ่งต่าง ๆ ให้สั้นที่สุดความเข้ากันไม่ได้นั้นยิ่งใหญ่กว่า
ตัวอย่างเช่นรหัสที่สร้างโดย JSFuck สำหรับalert("Hello World!")
ไม่ทำงานบน Internet Explorer หากนี่เป็นข้อ จำกัด ที่ยอมรับได้เรายังสามารถลดขนาดลงเหลือ16117 22174ตัวอักษร (ฉันไม่สามารถรวมรหัสทั้งหมดได้โดยตรงเนื่องจากขนาดคำตอบนั้น จำกัด ไว้ที่ 30,000 ตัวอักษร):
http://jsfiddle.net/ep2jqsj4/1/
รหัสที่ทำงานบน Internet Explorer ด้วยเช่นกัน แต่ไม่ใช่ในเบราว์เซอร์รุ่นเก่าบางรุ่นใช้เวลาในการเข้ารหัส14,747 อักขระ :
http://jsfiddle.net/bbxfqboq/
สุดท้ายถ้ามันมีรหัสที่ทำงานบน Firefox ปัจจุบัน[อัพเดท]และ Safari [สิ้นสุดการอัพเดท]เท่านั้นเราสามารถทำได้ด้วยตัวอักษร5903 5911 :
http://jsfiddle.net/pkyLy0j8/1/
ฉันเข้ารหัสทั้งหมดของผู้ที่มีJScrewIt คุณสามารถค้นหาเข้ารหัสอื่น ๆ ที่คล้ายกับ JSFuck จดทะเบียนใน Esolang: http://esolangs.org/wiki/JSFuck ฉันลองพวกเขาทั้งหมดและฉันต้องบอกว่า JScrewIt ดูเหมือนจะดีที่สุด (และเป็นอันเดียวที่ใช้ได้กับเบราว์เซอร์ทั้งหมด) แต่ฉันไม่ได้วิเคราะห์ว่ามันทำงานได้ละเอียดหรือไม่
เอนโค้ดเดอร์ที่น่าสนใจอีกอันคือ6chars.jsซึ่งสร้างเอาต์พุตที่มีขนาดใหญ่กว่าสำหรับอินพุตแบบสั้นalert("Hello World!")
แต่เมื่ออินพุตนานขึ้นมันจะทำงานได้ดีกว่าเอนโค้ดเดอร์ตัวอื่นเพราะมันเข้ารหัสอักขระเป็นตัวเลข ตัวเลขสั้นกว่าที่จะเขียนใน JSFuck แต่ต้องการค่าใช้จ่ายเพิ่มเติมในการถอดรหัส น่าเสียดายที่ 6chars.js ใช้งานได้เฉพาะใน Chrome และฉันไม่สามารถบอกได้ว่ายังคงพัฒนาอยู่หรือไม่
มันน่าสนใจที่จะทราบว่ามีตัวเข้ารหัสดังกล่าวจำนวนมากขึ้นหรือไม่ หากใครสามารถเข้าร่วมวิธีการที่ใช้โดยเครื่องเข้ารหัสที่แตกต่างกันในเครื่องมือเดียวมันเป็นไปได้ที่จะผลิตโซลูชั่นที่สั้นกว่า
$
และ=
เช่นกันได้ไหม ไม่อย่างนั้นฉันไม่คิดว่าเราจะสามารถสร้างเครื่องกำเนิดที่ดีที่สุดได้