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

10
วิธีแปลง Set เป็น Array
ชุดดูเหมือนว่าเป็นวิธีที่ดีในการสร้างอาร์เรย์ที่มีองค์ประกอบที่ไม่ซ้ำกันรับประกัน แต่ก็ไม่ได้เปิดเผยวิธีที่ดีใด ๆ ที่จะได้รับคุณสมบัติยกเว้นสำหรับเครื่องกำเนิดไฟฟ้า [Set] .values mySet.values.next()ซึ่งเรียกว่าในทางที่น่าอึดอัดใจของ สิ่งนี้คงจะดีถ้าคุณสามารถโทรmapและฟังก์ชั่นที่คล้ายกันในชุด แต่คุณไม่สามารถทำเช่นนั้นได้ ฉันพยายามArray.fromแล้ว แต่ดูเหมือนว่าจะแปลงเฉพาะวัตถุที่เหมือนอาร์เรย์ (NodeList และ TypedArrays?) ไปเป็น Array ลองอีกครั้ง: ใช้Object.keysไม่ได้กับชุดและ Set.prototype ไม่มีวิธีคงที่ที่คล้ายกัน ดังนั้นคำถาม: มีวิธีการ inbuilt ที่สะดวกสำหรับการสร้าง Array ด้วยค่าของ Set ที่กำหนดหรือไม่ (ลำดับขององค์ประกอบไม่สำคัญจริงๆ) หากไม่มีตัวเลือกดังกล่าวอยู่แล้วอาจจะมีสำนวนหนึ่งที่ดีสำหรับการทำเช่นนั้น? ชอบใช้for...ofหรือคล้ายกัน?

9
เมื่อใดที่ฉันควรใช้ฟังก์ชั่นลูกศรใน ECMAScript 6
คำถามนี้ส่งตรงไปยังผู้ที่คิดเกี่ยวกับรูปแบบโค้ดในบริบทของ ECMAScript 6 (Harmony) ที่กำลังจะมาถึงและผู้ที่ได้ทำงานกับภาษานี้แล้ว ด้วย() => {}และfunction () {}เราจะได้รับสองวิธีที่คล้ายกันมากในการเขียนฟังก์ชั่นใน ES6 ในภาษาอื่น ๆ ฟังก์ชั่นแลมบ์ดามักจะแยกแยะตัวเองโดยการไม่เปิดเผยตัวตน แต่ใน ECMAScript ฟังก์ชั่นใด ๆ สามารถไม่ระบุชื่อได้ แต่ละประเภทมีโดเมนการใช้งานที่ไม่ซ้ำกัน (เช่นเมื่อthisต้องถูกผูกไว้อย่างชัดเจนหรือไม่ผูกมัดอย่างชัดเจน) ระหว่างโดเมนเหล่านั้นมีหลายกรณีที่สัญกรณ์ทั้งสองจะทำ ฟังก์ชั่นลูกศรใน ES6 มีข้อ จำกัด อย่างน้อยสองข้อ: ไม่ทำงานnewและไม่สามารถใช้งานได้เมื่อสร้างprototype แก้ไขthisขอบเขตกับขอบเขตเมื่อเริ่มต้น ข้อ จำกัด ทั้งสองนี้ข้างกันฟังก์ชั่นลูกศรในทางทฤษฎีสามารถแทนที่ฟังก์ชั่นปกติได้เกือบทุกที่ วิธีการที่ถูกต้องใช้พวกเขาในทางปฏิบัติคืออะไร? ควรใช้ฟังก์ชันลูกศรเช่น: "ทุกที่ที่ทำงาน" คือทุกที่ที่ฟังก์ชั่นไม่จำเป็นต้องไม่เชื่อเรื่องพระเจ้าthisและเราไม่ได้สร้างวัตถุ มีเพียง "ทุกที่ที่ต้องการ" เช่นผู้ฟังเหตุการณ์, หมดเวลา, ที่ต้องเชื่อมโยงกับขอบเขตที่แน่นอน ด้วยฟังก์ชั่น 'สั้น' แต่ไม่ได้มีฟังก์ชั่น 'ยาว' เฉพาะกับฟังก์ชั่นที่ไม่มีฟังก์ชั่นลูกศรอื่น สิ่งที่ฉันกำลังมองหาเป็นแนวทางในการเลือกสัญกรณ์ฟังก์ชั่นที่เหมาะสมในรุ่นอนาคตของ ECMAScript คำแนะนำจะต้องมีความชัดเจนเพื่อให้สามารถสอนให้นักพัฒนาในทีมได้และต้องสอดคล้องกันเพื่อที่จะได้ไม่ต้องทำการปรับโครงสร้างไปมาอย่างต่อเนื่องจากสัญกรณ์หนึ่งไปยังอีกฟังก์ชันหนึ่ง

7
แรงจูงใจในการนำสัญลักษณ์ไป ES6 คืออะไร?
อัปเดต : เมื่อเร็ว ๆ นี้บทความยอดเยี่ยมจาก Mozillaขึ้นมา อ่านถ้าคุณอยากรู้ ดังที่คุณอาจทราบว่าพวกเขากำลังวางแผนที่จะรวม Symbol แบบดั้งเดิมใหม่ใน ECMAScript 6 (ไม่ต้องพูดถึงสิ่งที่บ้าอื่น ๆ ) ฉันมักจะคิดว่าความ:symbolคิดในทับทิมนั้นไม่จำเป็น เราสามารถใช้สตริงธรรมดาได้อย่างง่ายดายแทนเช่นที่เราทำใน JavaScript และตอนนี้พวกเขาตัดสินใจที่จะทำให้สิ่งต่าง ๆ ใน JS ซับซ้อนขึ้น ฉันไม่เข้าใจแรงจูงใจ มีคนอธิบายให้ฉันฟังว่าเราต้องการสัญลักษณ์ใน JavaScript จริงหรือ

20
ฉันจะโคลนวัตถุ JavaScript ยกเว้นรหัสเดียวได้อย่างไร
ฉันมีวัตถุ JS แบน: {a: 1, b: 2, c: 3, ..., z:26} ฉันต้องการโคลนวัตถุยกเว้นองค์ประกอบหนึ่ง: {a: 1, c: 3, ..., z:26} วิธีที่ง่ายที่สุดในการทำเช่นนี้คืออะไร (เลือกที่จะใช้ es6 / 7 ถ้าเป็นไปได้)?

9
วิธีกำหนดความเท่าเทียมกันของวัตถุสำหรับชุด JavaScript
ใหม่ ES 6 (Harmony) แนะนำชุดวัตถุใหม่ อัลกอริทึมประจำตัวที่ใช้โดยชุดนั้นคล้ายกับ===โอเปอเรเตอร์และไม่เหมาะสำหรับการเปรียบเทียบวัตถุ: var set = new Set(); set.add({a:1}); set.add({a:1}); console.log([...set.values()]); // Array [ Object, Object ] วิธีกำหนดความเท่าเทียมกันสำหรับการตั้งค่าวัตถุเพื่อทำการเปรียบเทียบวัตถุลึก มีอะไรเช่น Java equals(Object)?

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)) { …

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

1
JavaScript ดับเบิ้ลโคลอน (ตัวดำเนินการผูก)
ดังที่คุณทราบมีข้อเสนอสำหรับทางลัดสำหรับ.bind()ฟังก์ชันดังนั้นคุณสามารถเขียน: ::this.handleStuff และมันจะทำงานเช่นนั้นใน es5: this.handleStuff.bind(this) คำถามของฉันคือจะสามารถส่งผ่านข้อโต้แย้งด้วยวิธีนี้ได้หรือไม่? ฉันหมายถึงวิธีการเขียนสิ่งนี้ด้วยทางลัดดังกล่าวข้างต้น: this.handleStuff.bind(this, 'stuff') มันเป็นรูปแบบทั่วไปใน React ดังนั้นจึงเป็นการดีที่จะย่อให้สั้นลงเล็กน้อย

6
วิธีการในวัตถุ ES6: การใช้ฟังก์ชันลูกศร
ใน ES6 ทั้งสองอย่างนี้ถูกกฎหมาย: var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } }; และเป็นชวเลข: var chopper = { owner: 'Zed', getOwner() { return this.owner; } } เป็นไปได้ไหมที่จะใช้ฟังก์ชั่นลูกศรใหม่ด้วย ในการลองทำสิ่งต่างๆเช่น var chopper = { owner: 'John', getOwner: () => { return this.owner; } }; หรือ var chopper = { …

7
ES6 Map และ WeakMap ต่างกันอย่างไร
เมื่อดูสิ่งนี้และหน้า MDN นี้ดูเหมือนว่าข้อแตกต่างเพียงอย่างเดียวระหว่าง Maps และ WeakMaps คือคุณสมบัติ "ขนาด" ที่ขาดหายไปสำหรับ WeakMaps แต่นี่เป็นเรื่องจริงหรือไม่? อะไรคือความแตกต่างระหว่างพวกเขา?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.