คำถามติดแท็ก ecmascript-6

ข้อกำหนดคุณสมบัติ ECMAScript เวอร์ชัน 2015 ปัจจุบันเป็นมาตรฐาน (ECMAScript 2015) ใช้แท็กนี้เฉพาะเมื่อคำถามเกี่ยวข้องกับคุณสมบัติใหม่หรือการเปลี่ยนแปลงทางเทคนิคที่ให้ไว้ใน ECMAScript 2015 เท่านั้น

7
การแปลงตัววนซ้ำ Javascript เป็นอาร์เรย์
ฉันพยายามใช้แผนที่วัตถุใหม่จาก Javascript EC6 เนื่องจากได้รับการสนับสนุนใน Firefox และ Chrome เวอร์ชันล่าสุดแล้ว แต่ฉันพบว่ามันมีข้อ จำกัด มากในการเขียนโปรแกรม "ฟังก์ชั่น" เพราะมันขาดแผนที่แบบคลาสสิกตัวกรองและอื่น ๆ ที่ใช้งานได้ดีกับ[key, value]คู่ มันมี forEach แต่ว่าจะไม่ส่งกลับผลลัพธ์การโทรกลับ ถ้าฉันจะเปลี่ยนมันmap.entries()จาก MapIterator ลงในอาร์เรย์ที่เรียบง่ายจากนั้นผมก็สามารถใช้มาตรฐาน.map, .filterไม่มี hacks เพิ่มเติม มีวิธี "ดี" ในการแปลง Javascript Iterator เป็น Array หรือไม่? ในไพ ธ อนมันง่ายเหมือนทำlist(iterator)... แต่Array(m.entries())คืนอาเรย์ด้วย Iterator เป็นองค์ประกอบแรก !!! แก้ไข ฉันลืมระบุว่าฉันกำลังมองหาคำตอบที่ทำงานได้ทุกที่บนแผนที่ซึ่งหมายความว่าอย่างน้อย Chrome และ Firefox (Array.from ไม่ทำงานใน Chrome) PS ฉันรู้ว่ามีwu.js …


2
คุณลักษณะ ECMAScript 6 มีอยู่ใน Node.js 0.12
ปล่อยมั่นคงใหม่ 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 …

5
ใช้ ECMAScript 6
ฉันกำลังมองหาวิธีเรียกใช้รหัส ECMAScript 6 ในคอนโซลของเบราว์เซอร์ของฉัน แต่เบราว์เซอร์ส่วนใหญ่ไม่รองรับฟังก์ชันการทำงานที่ฉันกำลังมองหา ตัวอย่างเช่น Firefox เป็นเบราว์เซอร์เดียวที่รองรับฟังก์ชั่นลูกศร มีวิธี (ส่วนขยาย userscript ฯลฯ ) ฉันสามารถเรียกใช้คุณสมบัติเหล่านี้บน Chrome ได้หรือไม่


11
forEach ไม่ใช่ข้อผิดพลาดของฟังก์ชันกับอาร์เรย์ JavaScript
ฉันกำลังพยายามสร้างลูปง่ายๆ: const parent = this.el.parentElement console.log(parent.children) parent.children.forEach(child => { console.log(child) }) แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: VM384: 53 Uncaught TypeError: parent.children.forEach ไม่ใช่ฟังก์ชัน แม้ว่าparent.childrenบันทึก: อะไรคือปัญหา? หมายเหตุ: นี่เป็นJSFiddle

4
รับชื่อคลาสของอินสแตนซ์ของคลาส ES6
มีวิธีใดที่ 'สามัคคี' ในการรับชื่อคลาสจากอินสแตนซ์ของคลาส ES6 หรือไม่ นอกเหนือจากนี้ someClassInstance.constructor.name ขณะนี้ฉันกำลังนับการใช้งาน Traceur และดูเหมือนว่าบาเบลมีพอลิฟิลFunction.nameในขณะที่เทรเกอร์ไม่ได้ เพื่อสรุปทั้งหมด: ไม่มีวิธีอื่นใน ES6 / ES2015 / Harmony และไม่มีสิ่งใดที่คาดว่าจะเป็น ATM ใน ES.Next มันอาจให้รูปแบบที่มีประโยชน์สำหรับแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ไม่ระบุ แต่ไม่ต้องการในแอปพลิเคชันที่มีไว้สำหรับเบราว์เซอร์ / เดสก์ทอป / มือถือ Babel ใช้core-jsสำหรับ polyfill Function.nameควรโหลดด้วยตนเองสำหรับแอปพลิเคชั่น Traceur และ TypeScript ตามความเหมาะสม

19
มีกลไกในการวนรอบ x ครั้งใน ES6 (ECMAScript 6) โดยไม่มีตัวแปรที่ไม่แน่นอนหรือไม่?
วิธีทั่วไปในการวนรอบxเวลาใน JavaScript คือ: for (var i = 0; i < x; i++) doStuff(i); แต่ฉันไม่ต้องการใช้++โอเปอเรเตอร์หรือมีตัวแปรที่ไม่แน่นอนใด ๆ มีวิธีใดใน ES6 ที่จะวนซ้ำxอีกทางหนึ่ง ฉันรักกลไกของรูบี้: x.times do |i| do_stuff(i) end มีอะไรที่คล้ายกันใน JavaScript / ES6? ฉันสามารถโกงและสร้างเครื่องกำเนิดของตัวเองได้: function* times(x) { for (var i = 0; i < x; i++) yield i; } for (var i of times(5)) { …

3
การเชื่อมตัวแปรและสตริงเข้าด้วยกันใน React
มีวิธีการรวมเครื่องหมายปีกกาของ React และhrefแท็กหรือไม่? สมมติว่าเรามีค่าต่อไปนี้ในรัฐ: {this.state.id} และแอตทริบิวต์ HTML ต่อไปนี้บนแท็ก: href="#demo1" id="demo1" มีวิธีที่ฉันสามารถเพิ่มidรัฐลงในแอตทริบิวต์ HTML เพื่อรับสิ่งนี้หรือไม่: href={"#demo + {this.state.id}"} ซึ่งจะให้: #demo1

8
นี่เป็นวิธีที่ดีในการโคลนวัตถุใน ES6 หรือไม่?
Googling สำหรับ "javascript clone object" นำผลลัพธ์ที่แปลกจริง ๆ มาใช้บางอันล้าสมัยอย่างสิ้นหวังและบางอันก็ซับซ้อนเกินไปไม่ง่ายเหมือน: let clone = {...original}; มีอะไรผิดปกติกับเรื่องนี้หรือไม่?

5
เมื่อใดที่ฉันควรใช้ `return 'ในฟังก์ชั่นลูกศร es6
ฟังก์ชั่นลูกศร es6ใหม่บอกreturnเป็นนัยภายใต้สถานการณ์บางอย่าง: นิพจน์เป็นค่าส่งคืนโดยนัยของฟังก์ชันนั้น ฉันจำเป็นต้องใช้returnกับฟังก์ชั่นลูกศร es6 ในกรณีใดบ้าง

11
หนึ่งซับเพื่อนำคุณสมบัติบางอย่างจากวัตถุใน ES 6
วิธีหนึ่งสามารถเขียนฟังก์ชั่นซึ่งใช้เพียงไม่กี่คุณลักษณะในวิธีกะทัดรัดที่สุดใน ES6? ฉันคิดวิธีแก้ปัญหาโดยใช้ destructuring + วัตถุที่ทำให้เข้าใจง่าย แต่ฉันไม่ชอบรายการของฟิลด์ซ้ำในรหัส มีวิธีการที่บางกว่าหรือไม่? (v) => { let { id, title } = v; return { id, title }; }

8
ตัดบรรทัดลิเทอรัลเทมเพลตแบบยาวเป็นหลายบรรทัดโดยไม่ต้องสร้างบรรทัดใหม่ในสตริง
ในตัวอักษรเทมเพลต es6 เราจะรวมตัวอักษรแบบยาวเป็นหลายบรรทัดโดยไม่ต้องสร้างบรรทัดใหม่ในสตริงได้อย่างไร ตัวอย่างเช่นหากคุณทำสิ่งนี้: const text = `a very long string that just continues and continues and continues` จากนั้นจะสร้างสัญลักษณ์บรรทัดใหม่ให้กับสตริงเนื่องจากตีความให้มีบรรทัดใหม่ เราจะรวมลิเทอรัลแบบยาวเป็นหลายบรรทัดโดยไม่ต้องสร้างบรรทัดใหม่ได้อย่างไร

15
วิธีการโหลดสคริปต์ภายนอกแบบไดนามิกในเชิงมุม?
ฉันมีโมดูลนี้ซึ่งประกอบห้องสมุดภายนอกพร้อมกับตรรกะเพิ่มเติมโดยไม่ต้องเพิ่ม<script>แท็กลงใน index.html: import 'http://external.com/path/file.js' //import '../js/file.js' @Component({ selector: 'my-app', template: ` <script src="http://iknow.com/this/does/not/work/either/file.js"></script> <div>Template</div>` }) export class MyAppComponent {...} ฉันสังเกตเห็นว่าimportข้อมูลจำเพาะโดย ES6 นั้นเป็นแบบสแตติกและได้รับการแก้ไขระหว่างการถ่ายทำ TypeScript แทนที่จะใช้งานจริง ยังไงก็ตามเพื่อให้สามารถกำหนดค่าได้ดังนั้น file.js จะโหลดจาก CDN หรือโฟลเดอร์ในเครื่องใช่ไหม จะบอก Angular 2 ให้โหลดสคริปต์ได้อย่างไร

5
ส่งออกหลายคลาสในโมดูล ES6
ฉันกำลังพยายามสร้างโมดูลที่ส่งออกหลายคลาส ES6 สมมติว่าฉันมีโครงสร้างไดเรกทอรีต่อไปนี้: my/ └── module/ ├── Foo.js ├── Bar.js └── index.js Foo.jsและBar.jsแต่ละการส่งออกคลาส ES6 เริ่มต้น: // Foo.js export default class Foo { // class definition } // Bar.js export default class Bar { // class definition } ฉันมีการindex.jsตั้งค่าของฉันเช่นนี้: import Foo from './Foo'; import Bar from './Bar'; export default { Foo, …

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