จาวาสคริปต์เอนจิน

จาวาสคริปต์เอนจิน (JavaScript engine) เป็นส่วนประกอบซอฟต์แวร์ที่รันรหัสต้นทางในภาษา จาวาสคริปต์ เอนจินจาวาสคริปต์ในยุกแรกเป็นเพียงอินเทอร์พรีเตอร์ แต่เอ็นจิ้นสมัยใหม่ใช้การแปลแบบทันท่วงทีเพื่อประสิทธิภาพที่ดีขึ้น 

โดยทั่วไปแล้วจาวาสคริปต์เอนจิน ได้รับการพัฒนาโดยผู้จำหน่ายเว็บเบราว์เซอร์ และเบราว์เซอร์หลัก ๆ ทุกตัวก็มีจาวาสคริปต์เอนจินแถมมาด้วย เพื่อทำงานร่วมกับ เร็นเดอริงเอนจิน ผ่าน Document Object Model

การใช้จาวาสคริปต์เอนจิน ไม่ได้จำกัดอยู่เพียงเบราว์เซอร์ เช่น วี8 เป็นองค์ประกอบหลักของระบบรันไทม์ Node.js และ Deno

เนื่องจากเอ็กมาสคริปต์เป็นข้อกำหนดมาตรฐานของจาวาสคริปต์ จาวาสคริปต์เอนจินจึงอาจเรียกได้ในอีกชื่อหนึ่งว่า เอ็กมาสคริปต์เอนจิน ด้วยการถือกำเนิดของ WebAssembly เอ็นจิ้นบางตัวยังสามารถรันรหัสเหล่านั้นในกระบะทรายเดียวกันกับรหัสจาวาสคริปต์ทั่วไปได้

 ความเป็นมา 
จาวาสคริปต์เอนจินตัวแรกถูกสร้างขึ้นโดย Brendan Eich ในปี 1995 สำหรับ เน็ตสเคป แนวิเกเตอร์ มันเป็นอินเทอร์พรีเตอร์พื้นฐานสำหรับภาษาที่ Eich คิดค้นขึ้นใหม่ (เอนจิ้นดังกล่าวได้พัฒนาเป็นเอ็นจิ้นสไปเดอร์มังกี้ (SpiderMonkey) ในเวลาต่อมา โดยสไปเดอร์มังกี้นั้นยังคงใช้ใน Firefox)

จาวาสคริปต์เอนจินสมัยใหม่ตัวแรกคือวี8ซึ่งสร้างโดยกูเกิลมาเพื่อกูเกิล โครม วี8 เปิดตัวโดยเป็นส่วนหนึ่งของกูเกิล โครม ในปี 2008 และประสิทธิภาพก็ดีกว่าเอนจินรุ่นก่อน ๆ มาก   นวัตกรรมที่สำคัญคือการแปลแบบทันท่วงทีซึ่งสามารถปรับปรุงเวลาดำเนินการได้อย่างมาก

ผู้จำหน่ายเบราว์เซอร์รายอื่น ๆ จำเป็นต้องยกเครื่องเอนจินของพวกเขาเพื่อแข่งขันในตลาดได้ Apple พัฒนาเครื่องยนต์ Nitro สำหรับเบราว์เซอร์ Safari ซึ่งมีประสิทธิภาพดีกว่ารุ่นก่อนถึง 30% Safari 5 Released Mozilla ใช้ประโยชน์จาก Nitro บางส่วนเพื่อปรับปรุงเอ็นจินสไปเดอร์มังกี้ของตัวเอง 

ตั้งแต่ปี 2017 เอ็นจินเหล่านี้ได้เพิ่มการรองรับ WebAssembly ซึ่งช่วยให้สามารถใช้ไฟล์สั่งทำการที่แปลโปรแกรมไว้ล่วงหน้าสำหรับส่วนที่ต้องการประสิทธิภาพของสคริปต์เพจได้

 เอนจินที่มีชื่อเสียง 

 วี8 จากกูเกิลเป็นจาวาสคริปต์เอนจินที่ใช้มากที่สุด กูเกิล โครมและเบราว์เซอร์ที่ใช้โครเมียมอื่น ๆ มากมายใช้งานวี8 เช่นเดียวกับโปรแกรมประยุกต์ที่สร้างด้วย CEF, Electron หรือ เฟรมเวิร์ก อื่น ๆ ที่ฝัง Chromium การใช้งานอื่น ๆ ได้แก่ ระบบรันไทม์ Node.js และ Deno
 สไปเดอร์มังกี้ได้รับการพัฒนาโดย Mozilla เพื่อใช้ใน Firefox และตัวแยกส้อมชองมัน GNOME Shell ใช้สไปเดอร์มังกี้เพื่อรองรับส่วนขยาย
 JavaScriptCore เป็นเอนจินของ Apple สำหรับเบราว์เซอร์ Safari เบราว์เซอร์ที่ใช้ WebKit อื่น ๆ และระบบรันไทม์ของ Bun ก็ใช้เบราว์เซอร์นี้เช่นกัน KJS จาก KDE เป็นจุดเริ่มต้นในการพัฒนา 
 จักร (Chakra) เป็นเอนจินของ Internet Explorer นอกจากนี้ยังได้รับการแยกส้อมโดย Microsoft มาเพื่อใช้ในไมโครซอฟท์ เอดจ์ตัวเดิม แต่ภายหลังไมโครซอฟท์ เอดจ์ถูกสร้างขึ้นใหม่โดยใช้โครเมียมจึงใช้วี8 เป็นเอนจิน

 อ้างอิง 

หมวดหมู่:จาวาสคริปต์
หมวดหมู่:จาวาสคริปต์เอนจิน