คุณลักษณะ ECMAScript 6 มีอยู่ใน Node.js 0.12


162

ปล่อยมั่นคงใหม่ Node.js (0.12) มีที่ดินเมื่อเร็ว ๆ นี้ที่มีการอัพเกรดเครื่องยนต์ JavaScript ของ Google v8, v3.28.73

ฟีเจอร์ ECMAScript 6 ปัจจุบันมีอยู่ใน Node.js โดยไม่ใช้--harmonyแฟล็ก

ฉันได้ตรวจสอบหลายเว็บไซต์ที่อ้างว่ามีรายชื่อของคุณสมบัติ ES 6 แต่ทุกเว็บไซต์ดูล้าสมัย - ส่วนใหญ่เด่นชัดที่สุดตารางนี้ ( อัปเดต แล้ว: อัปเดตตอนนี้ด้วยสถานะ Node.js ปัจจุบันเท่ากับ 0.12 ) เนื่องจากคุณสมบัติหลายรายการระบุว่า ต้องมีการ--harmonyตั้งค่าสถานะในขณะที่ฉันพบว่าบางส่วนของพวกเขาถูกเปิดใช้งานโดยค่าเริ่มต้น (แผนที่, ชุด, สัญลักษณ์, เพื่อชื่อไม่กี่) ปรับปรุง : ตารางเฉพาะโหนดได้ถูกทำให้พร้อมใช้งาน

นอกจากนี้การลอง google ข้อมูลนี้เพื่อใช้กับเอ็นจิ้น v8 นั้นให้ข้อมูลที่ทันสมัยเกินไป - v8 รีลีสปัจจุบันคือ4.2. *ซึ่งค่อนข้างล้ำหน้ากว่าสิ่งที่ Node.js ใช้

ความหวังของฉันคือคำถามนี้ (และคำตอบ) จะกลายเป็นบทสรุปที่ครอบคลุมเกี่ยวกับคุณสมบัติของ ES 6 ที่นักพัฒนา Node.js มีในขณะนี้

เปิดใช้งานฟีเจอร์ ES 6 ใน Node.js 0.12 ฉันรู้:

  • แผนที่, ชุด / WeakMaps, WeakSets
  • สัญลักษณ์
  • Object.observe
  • สัญญา
  • จำนวน
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .EPSILON
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • คณิตศาสตร์
    • .clz32
    • .imul
    • .sign
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .cosh
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot

9
"ความหวังของฉันคือคำถามนี้ (และคำตอบ) จะกลายเป็นบทสรุปที่ครอบคลุมเกี่ยวกับฟีเจอร์ ES 6 ที่นักพัฒนา Node.js มีให้ในขณะนี้" - โอกาสที่มันจะกลายเป็นความยุ่งเหยิงที่ไม่เป็นระเบียบ ... นั่นมันล้าสมัยเหมือนทรัพยากรอื่น ๆ ทั้งหมด !! นอกจากคุณ 1) คำตอบด้วยตนเองและ 2) ใช้เวลาในการดูแลคำตอบอื่น ๆ ให้เป็นของคุณ หากคุณพร้อมที่จะทำงานนั้นมันอาจจะเหมาะสมกว่าที่จะทำในบล็อก
สตีเฟ่นซี

2
หรือเพียงแค่สลับไปio.js (ซึ่งเรือที่มีมากขึ้นถึงวัน V8 รุ่น) และเก็บตาบนES6 บนหน้า
FabrícioMatté

2
ตารางความเข้ากันได้ของ curated ES6: kangax.github.io/compat-table/es6
FabrícioMatté

2
@JonathanLonowski น่าสนใจเป็นเรื่องแปลกที่ฉันไม่พบปัญหา / ประชาสัมพันธ์เกี่ยวกับ Node 0.12 แก้ไข:ยื่นปัญหาแล้ว
FabrícioMatté

1
@RobertRossmann - ทุกคนสามารถมีบล็อกได้ ฉันไม่สงสัยเป้าหมายของคุณ มันเป็นเพียงที่ฉันไม่คิดว่าสิ่งนี้จะได้ผล ... เว้นแต่จะมีใครบางคน (เช่น >> คุณ <<) ใส่ในความพยายามที่ << เพื่อทำให้มันใช้งานได้
Stephen C

คำตอบ:


250

คุณสมบัติที่ไม่มี--harmonyธง:

ฉันคิดว่านั่นคือทั้งหมดที่เรามีโดยไม่ต้อง--harmonyตั้งค่าสถานะ

คุณสมบัติที่มี--harmonyธง:

ฉันคิดว่านั่นคือทั้งหมดที่ บางทีถ้าฉันลืมบางอย่าง - ฉันจะเพิ่มในภายหลังในรายการ


8
นี่เป็นคำตอบที่ฉันหวังว่าจะได้รับ - สะอาดและมีลิงก์ไปยังเอกสาร / ตัวอย่าง! คะแนนพิเศษสำหรับฟีเจอร์การแสดงรายการภายใต้--harmonyธง :)
Robert Rossmann

2
แม่แบบสตริงนั้นมีหรือไม่มี--harmony? เช่นเดียวกับใน${varname}ไวยากรณ์สตริงกลับเห็บ?
Sukima

5
@Sukima Node v0.12 ไม่สนับสนุนสตริงเทมเพลตหรือด้วย--harmonyแฟล็กหรือไม่ใช้ แต่iojs สนับสนุนพวกเขาโดยไม่ต้องการธงใด ๆ
alexpods

1
nodejs มีเอกสารนี้ทุกที่หรือไม่? มันมีประโยชน์มาก
Justin Hamade

1
@JonRed การวิ่งของคุณอาจล้มเหลวด้วยเหตุผลอื่นไม่ใช่เพราะค่าคงที่ ฉันได้ลองแล้วและการวิ่งของฉันก็ใช้ได้ดีทีเดียว
alexpods

4

คุณสมบัติ ES6 หยดลงไปที่โหนดในเฟส โหนดใช้ V8 ของ Google เป็นเครื่องมือ JavaScript คุณลักษณะที่ได้รับการสนับสนุนในโหนดหมายความว่าจะต้องมีการใช้งานใน V8 ก่อนจากนั้นทีมโหนดจะต้องรวมไว้ใน Node.js

ทีมงานของ Google เปิดตัว V8 รุ่นใหม่ทุก ๆ หกสัปดาห์จากนั้นก็ขึ้นอยู่กับทีม Node เพื่อนำไปใช้งาน

รายการคุณลักษณะภาษาที่ดูแลด้วยตนเองนั้นดี แต่อาจล้าสมัยอย่างรวดเร็ว Node 0.12 ไม่ได้อยู่ในฟลักซ์อีกต่อไป แต่โดยทั่วไปแล้วรายการที่ curated ด้วยตนเองจะล้าสมัยทันทีที่ Node เวอร์ชันใหม่ถูกยกเลิก

ต่อไปนี้เป็นวิธีการสำรองสองวิธีในการตรวจสอบคุณสมบัติที่รองรับโหนดรุ่นโดยไม่ต้องพึ่งพารายการคงที่ สำหรับการอ่านเพิ่มเติมและตัวอย่างโดยละเอียดของการใช้งานเหล่านี้คุณสามารถตรวจสอบ"วิธีการตรวจสอบว่า Node.js รองรับคุณสมบัติภาษา ES 6"

# 1 ง่าย - ตารางความเข้ากันได้

รายการที่สร้างขึ้นแบบไดนามิกที่ต้องอาศัยการทดสอบขนาดเล็กเพื่อยืนยันการมีอยู่ของภาษานั้นดีขึ้นอยู่เสมอ หนึ่งในรายการยอดนิยมเช่น kangax.github.io/compat-table/es6/ เราสนใจเฉพาะฟีเจอร์ของโหนดเพื่อให้คุณสามารถใช้งานได้

http://node.green

ที่ใช้ประโยชน์จากข้อมูลเดียวกันกับเว็บไซต์ kangax

# 2 ยาก - เวอร์ชัน V8 ย้อนแสง

โหนดใช้เอ็นจิ้น V8 ดังนั้นการพิจารณาว่าเวอร์ชันใดของ V8 ที่รวมอยู่ในโหนดจะบอกเราว่าคุณลักษณะภาษา ES6 ใดบ้างที่ได้รับการสนับสนุน คุณสามารถหาที่รุ่น V8 node -p process.versions.v8ถูกรวมในโหนดกับ

$ node -p process.versions.v8
4.6.85.31

จากนั้นใช้ทรัพยากรโครงการ V8 ของ Google คุณสามารถค้นหาคุณลักษณะที่มีการใช้งานในแต่ละเวอร์ชัน โครงการ V8 คอยติดตามปัญหาที่คุณสามารถค้นหาคุณสมบัติ ES6 + ที่นอกเหนือจากที่ทำเครื่องหมายไว้ด้วยฉลากความสามัคคี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.