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

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

8
ใช้“ window.location.hash.includes” พ่น“ วัตถุไม่สนับสนุนคุณสมบัติหรือวิธีการ” รวม '” ใน IE11
ฉันกำลังตรวจสอบ URL เพื่อดูว่ามีหรือรวม?อยู่ในนั้นหรือไม่เพื่อควบคุมสถานะป๊อปแฮชในหน้าต่าง เบราว์เซอร์อื่น ๆ ทั้งหมดไม่มีปัญหามีเพียง IE เท่านั้น ตัวดีบักให้ข้อผิดพลาดนี้แก่ฉันเมื่อฉันพยายามโหลดด้วยวิธีนี้: วัตถุไม่สนับสนุนคุณสมบัติหรือวิธีการ ' includes' ฉันไม่มีข้อผิดพลาดเมื่อฉันโหลดหน้าเว็บผ่าน popstate $(document).ready(function(e) { if(window.location.hash) { var hash; if(window.location.hash.includes("?")) { alert('I have a ?'); hash = window.location.hash.substring(window.location.hash.indexOf('#') + 0,window.location.hash.indexOf('?')); }else { hash = window.location.hash; }; if (hash=="#DRS" || hash=="#DRP" || hash=="#DFFI" || hash=="#DCI" || hash=="#DCP" || hash=="#DRP" || …

1
เหตุใด Math.pow () (บางครั้ง) จึงไม่เท่ากับ ** ใน JavaScript
ฉันเพิ่งค้นพบคุณลักษณะ ECMAScript 7 a**bเป็นทางเลือกสำหรับMath.pow(a,b)( อ้างอิง MDN ) และพบการสนทนาในโพสต์นั้นซึ่งเห็นได้ชัดว่าพวกเขาทำงานแตกต่างกัน ฉันได้ทดสอบใน Chrome 55 และสามารถยืนยันได้ว่าผลลัพธ์แตกต่างกัน Math.pow(99,99) ผลตอบแทน 3.697296376497263e+197 แต่ทว่า 99**99 ผลตอบแทน 3.697296376497268e+197 ดังนั้นการเข้าสู่ระบบความแตกต่างของผลในการMath.pow(99,99) - 99**99-5.311379928167671e+182 จนถึงตอนนี้อาจกล่าวได้ว่าเป็นเพียงการนำไปใช้งานอื่น แต่การรวมไว้ในฟังก์ชั่นจะทำงานแตกต่างกันอีกครั้ง: function diff(x) { return Math.pow(x,x) - x**x; } เรียกร้องผลตอบแทนdiff(99)0 เหตุใดจึงเกิดขึ้น ดังที่xszabojชี้ให้เห็นปัญหานี้สามารถ จำกัด ให้แคบลงได้: var x = 99; x**x - 99**99; // Returns -5.311379928167671e+182

5
Array.prototype.includes เทียบกับ Array.prototype.indexOf
นอกเหนือจากการอ่านที่ดีขึ้นจะมีประโยชน์ใด ๆ ที่includesมากกว่าindexOf? พวกเขาดูเหมือนกับฉัน อะไรคือความแตกต่างระหว่างสิ่งนี้ var x = [1,2,3].indexOf(1) > -1; //true และนี่? var y = [1,2,3].includes(1); //true

5
ฉันจะ `รอ 'บน Rx Observable ได้อย่างไร?
ฉันต้องการรอคอยสิ่งที่สังเกตเห็นได้เช่น const source = Rx.Observable.create(/* ... */) //... await source; ความพยายามที่ไร้เดียงสาส่งผลให้การรอคอยแก้ไขทันทีและไม่ปิดกั้นการดำเนินการ แก้ไข: รหัสเทียมสำหรับกรณีการใช้งานแบบเต็มของฉันคือ: if (condition) { await observable; } // a bunch of other code ฉันเข้าใจว่าฉันสามารถย้ายรหัสอื่นไปยังฟังก์ชันอื่นที่แยกจากกันและส่งไปยังการโทรกลับสมัครรับข้อมูลได้ แต่ฉันหวังว่าจะสามารถหลีกเลี่ยงสิ่งนั้นได้

6
วิธีที่ดีที่สุดในการเติมคุณสมบัติ ES6 ในแอป React ที่ใช้ create-react-app
ฉันได้ทดสอบแอปพลิเคชัน React.js ของฉันบน internet explorer และพบว่ารหัส ES6 / 7 บางรหัสชอบArray.prototype.includes()ทำลาย ฉันใช้create-react-appและเห็นได้ชัดว่าพวกเขาเลือกที่จะไม่รวม polyfills จำนวนมากเนื่องจากไม่ใช่ทุกคนที่ต้องการและทำให้เวลาในการสร้างช้าลง (ดูตัวอย่างที่นี่และที่นี่ ) เอกสาร (ขณะเขียน) แนะนำ: หากคุณใช้คุณสมบัติ ES6 + อื่น ๆ ที่ต้องการการสนับสนุนรันไทม์ (เช่น Array.from () หรือ Symbol) ตรวจสอบให้แน่ใจว่าคุณได้ใส่ polyfills ที่เหมาะสมด้วยตนเองหรือว่าเบราว์เซอร์ที่คุณกำหนดเป้าหมายรองรับอยู่แล้ว ดังนั้น ... วิธีที่ดีที่สุดในการ "รวม" ด้วยตนเองคืออะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.