JavaScript และ JScript แตกต่างกันอย่างไร


117

ฉันสงสัยมาตลอดว่าHecK คืออะไร!? คือความแตกต่างระหว่าง JScript และ JavaScript


ฉันแน่ใจว่ามันถูกชี้ให้เห็นแล้ว แต่ IE คุณไม่สามารถใช้constkeyword เพื่อประกาศตัวแปรได้: const MY_CONSTANT = 10;
dplante

คำตอบ:


83

ชื่อที่แตกต่างกันสำหรับ ECMAScript คืออะไร จอห์นเรซิกมีคำอธิบายที่ดี

นี่คือรายละเอียดเวอร์ชันเต็ม:

  • IE 6-7 รองรับ JScript 5 (ซึ่งเทียบเท่ากับ ECMAScript 3, JavaScript 1.5)
  • IE 8 รองรับ JScript 6 (ซึ่งเทียบเท่ากับ ECMAScript 3, JavaScript 1.5 - แก้ไขข้อบกพร่องเพิ่มเติมบน JScript 5)
  • Firefox 1.0 รองรับ JavaScript 1.5 (เทียบเท่า ECMAScript 3)
  • Firefox 1.5 รองรับ JavaScript 1.6 (1.5 + Array Extras + E4X + misc.)
  • Firefox 2.0 รองรับ JavaScript 1.7 (1.6 + Generator + Iterators + let + misc.)
  • Firefox 3.0 รองรับ JavaScript 1.8 (1.7 + Generator Expressions + Expression Closures + misc.)
  • Firefox เวอร์ชันถัดไปจะรองรับ JavaScript 1.9 (1.8 + ที่จะกำหนด)
  • Opera รองรับภาษาที่เทียบเท่ากับ ECMAScript 3 + Getters และ Setters + misc
  • Safari รองรับภาษาที่เทียบเท่ากับ ECMAScript 3 + Getters และ Setters + misc

15
นี่เป็นสิ่งที่ไม่ถูกต้อง JScript สนับสนุนคุณลักษณะไวยากรณ์บางอย่างไม่ได้อยู่ใน JavaScript f(x) = yรวมทั้ง ดูคำถามนี้สำหรับข้อมูลเพิ่มเติม
Asad Saeeduddin

4
@ มาลาคีฉันไม่จำเป็นต้อง คำตอบของแพทริคถูกต้อง
Asad Saeeduddin

38

เท่าที่ฉันสามารถบอกได้สองสิ่ง:

  1. ตัวสร้าง ActiveXObject
  2. สำนวน f (x) = y ซึ่งเทียบเท่ากับ f [x] = y โดยประมาณ

5
f(x) = yสำนวนข้อบกพร่องผมมากที่สุด! ทำไมโอ้ทำไมพวกเขาไม่ไปด้วยf[x] = y...
Ates Goral

2
MS จำเป็นต้องเพิ่มตราประทับในยุคนี้ นั่นเป็นวิธีที่คุณรู้ว่ามันดี
cchamberlain

21

จาก Wikipedia: http://en.wikipedia.org/wiki/Jscript

JScript เป็นภาษาถิ่นของ Microsoft ของข้อกำหนดภาษาสคริปต์ ECMAScript

JavaScript (การใช้งาน Netscape / Mozilla ตามข้อกำหนด ECMA), JScript และ ECMAScript เป็นภาษาที่คล้ายคลึงกันมาก ในความเป็นจริงชื่อ "JavaScript" มักใช้เพื่ออ้างถึง ECMAScript หรือ JScript

Microsoft ใช้ชื่อ JScript สำหรับการนำไปใช้เพื่อหลีกเลี่ยงปัญหาเครื่องหมายการค้า ( JavaScriptเป็นเครื่องหมายการค้าของOracle Corporation )


7
นี่ไม่ตอบคำถามเลย คำถามคือ "อะไรคือความแตกต่างระหว่าง JavaScript และ JScript" ตอบที่ถูกต้องถูกฝังอยู่ภายใต้หลาย reiterations ของสิ่งเดียวกัน
Asad Saeeduddin


7

Javascript ซึ่งเป็นภาษามาก่อนจาก Netscape

Microsoft ย้อนกลับ Javascript และเรียกมันว่า JScript เพื่อหลีกเลี่ยงปัญหาเครื่องหมายการค้ากับ Sun (Netscape และ Sun เป็นพันธมิตรกันในเวลานั้นปัญหานี้จึงน้อยกว่า)

ภาษาเหมือนกันทั้งสองภาษาเป็นภาษาถิ่นของสคริปต์ ECMA ซึ่งเป็นมาตรฐานหลังความจริง

แม้ว่าภาษาจะเหมือนกันเนื่องจาก JScript ทำงานใน Internet Explorer แต่ก็สามารถเข้าถึงวัตถุต่างๆที่เบราว์เซอร์เปิดเผยได้ (เช่น ActiveXObject)


10
ทั้งสองภาษาไม่เหมือนกันจริงๆตามที่ระบุไว้ในโพสต์อื่น
EFraim


4

ตามนี้บทความ:

  • JavaScriptเป็นภาษาสคริปต์ที่พัฒนาโดย Netscape Communications ที่ออกแบบมาสำหรับการพัฒนาแอปพลิเคชันอินเทอร์เน็ตไคลเอนต์และเซิร์ฟเวอร์ Netscape Navigator ออกแบบมาเพื่อตีความ JavaScript ที่ฝังอยู่ในเว็บเพจ JavaScript ไม่ขึ้นอยู่กับภาษา Java ของ Sun Microsystem

  • Microsoft JScriptเป็นการใช้งาน JavaScript ของ Netscape แบบเปิด JScript เป็นภาษาสคริปต์ประสิทธิภาพสูงที่ออกแบบมาเพื่อสร้างเนื้อหาออนไลน์ที่แอ็คทีฟสำหรับเวิลด์ไวด์เว็บ JScript ช่วยให้นักพัฒนาสามารถเชื่อมโยงและสร้างออบเจ็กต์ต่างๆในเว็บเพจโดยอัตโนมัติรวมถึงตัวควบคุม ActiveX และโปรแกรม Java Microsoft Internet Explorer ได้รับการออกแบบมาเพื่อตีความ JScript ที่ฝังอยู่ในเว็บเพจ


2
@phrj: นี่คือคำจำกัดความของ Humpty Dumpty ของ "Open" AFAIK แปลว่า "มุมฉาก"
Shog9

7
การเรียก JScript ว่า "ประสิทธิภาพสูง" ย้อนกลับไปในยุคก่อน V8 ทำให้เรารู้ว่าเรามาไกลแค่ไหน
Ray Toal

6
รายการที่สองดูเหมือนสื่อโฆษณา - "การใช้งานแบบเปิด" อันที่จริงหมายความว่า "คุณต้องเปิดใจที่จะยอมรับ" และ "ประสิทธิภาพสูง" หมายถึง "หมายถึงการทำงานบนเครื่องที่มีประสิทธิภาพสูง"
Camilo Martin

4

เมื่อนานมาแล้วผู้ให้บริการเบราว์เซอร์ทั้งหมดได้สร้างเอ็นจิ้น JavaScript สำหรับเบราว์เซอร์ของตนและมีเพียงพวกเขาและพระเจ้าเท่านั้นที่รู้ว่าเกิดอะไรขึ้นภายในนี้ วันหนึ่งที่สวยงาม ECMA International มาและพูดว่า: มาสร้างเครื่องยนต์ตามมาตรฐานทั่วไปมาสร้างสิ่งที่ทั่วๆไปเพื่อให้ชีวิตง่ายขึ้นและสนุกขึ้นและพวกเขาก็สร้างมาตรฐานนั้น เนื่องจากผู้ให้บริการเบราว์เซอร์ทุกรายสร้างเอ็นจิ้น JavaScript ตามแกน ECMAScript (มาตรฐาน)

ตัวอย่างเช่น Google Chrome ใช้เครื่องยนต์ V8 และเป็นโอเพ่นซอร์ส คุณสามารถดาวน์โหลดและดูว่าโปรแกรม C ++ แปลคำสั่ง 'พิมพ์' ของ JavaScript เป็นรหัสเครื่องได้อย่างไร

Internet Explorer ใช้เครื่องมือ JScript (Chakra) สำหรับเบราว์เซอร์ของตนและอื่น ๆ ก็ทำเช่นนั้นและทั้งหมดใช้แกนหลักทั่วไป


2

วิกิพีเดียมีนี้จะพูดเกี่ยวกับความแตกต่าง

โดยทั่วไป JScript เป็นภาษาสคริปต์ ActiveX ซึ่งอาจถูกตีความว่าเป็น JavaScript โดยเบราว์เซอร์ที่ไม่ใช่ IE


1

มีความแตกต่างของรหัสที่ควรระวัง

ไม่รองรับพารามิเตอร์ตัวแรกที่เป็นลบไปยัง subtr เช่นใน Javascript: "string".substr(-1)ส่งกลับ "g" ในขณะที่ JScript: "string".substr(-1)ส่งกลับ "string"

เป็นไปได้ที่"string"[0]จะรับ "s" ใน Javascript แต่ JScript ไม่สนับสนุนโครงสร้างดังกล่าว (อันที่จริงมีเพียงเบราว์เซอร์ที่ทันสมัยเท่านั้นที่สนับสนุน"string"[0]โครงสร้าง


-5

Jscript เป็นภาษา. NET คล้ายกับ C # โดยมีความสามารถเหมือนกันและเข้าถึงฟังก์ชัน. NET ทั้งหมด

JavaScript ทำงานบนเซิร์ฟเวอร์ ASP Classic ใช้ Classic ASP เพื่อเรียกใช้ JavaScript เดียวกันกับที่คุณมีบนไคลเอนต์ (ไม่รวมความสามารถ HTML5) ฉันมีรหัสเพียงชุดเดียวสำหรับรหัสส่วนใหญ่ของฉัน

ฉันเรียกใช้. ASPX JScript เมื่อฉันต้องการฟังก์ชัน Image และ Binary File (และอื่น ๆ อีกมากมาย) ที่ไม่ได้อยู่ใน Classic ASP รหัสนี้เป็นรหัสเฉพาะสำหรับเซิร์ฟเวอร์ แต่มีประสิทธิภาพมาก


7
ฉันคิดว่าคุณกำลังคิดถึงJScript.Net
Lankymart

-7

JScriptคือไมโครซอฟท์เทียบเท่า 'ของJavaScript
Java เป็นผลิตภัณฑ์Oracleและเคยเป็นผลิตภัณฑ์Sun

ออราเคิลซื้ออาทิตย์

JavaScript + Microsoft = JScript


14
ไปได้ง่ายในตัวหนา!
Jowen

ทำไมต้องเป็น Java คุณหมายถึง JavaScript
Stack0verflow

หมายเหตุสำคัญสำหรับทุกคนที่อาจไม่ทราบ: JavaScript และ Java ไม่ใช่สิ่งเดียวกันหรือเกี่ยวข้องกัน แต่อย่างใด เดิม JavaScript เรียกว่า LiveScript แต่เปลี่ยนชื่อเป็น JavaScript เพื่อใช้ประโยชน์จากความนิยมของ Java การแบ่งปันชื่อเป็นขอบเขตของสิ่งที่พวกเขามีเหมือนกันนอกเหนือจากความคล้ายคลึงกับ C เช่นภาษาไวยากรณ์
Bacon Brad
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.