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

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

3
โซนตายชั่วคราวคืออะไร
ฉันได้ยินมาว่าการเข้าถึงletและconstค่านิยมก่อนที่จะเริ่มต้นสามารถทำให้เกิดReferenceErrorเพราะสิ่งที่เรียกว่าเขตตายชั่วคราวเขตตายชั่วคราว โซนตายชั่วคราวคืออะไรมันเกี่ยวข้องกับขอบเขตและการชักรอกอย่างไรและในสถานการณ์ใดที่พบ

11
การเข้าถึงคุณสมบัติที่ไม่ปลอดภัย (และการกำหนดเงื่อนไข) ใน ES6 / 2015
มีตัวnullดำเนินการ -safe property (การขยายพันธุ์ / การดำรงอยู่ของ null) ใน ES6 (ES2015 / JavaScript.next / Harmony) เช่น?.ในCoffeeScriptหรือไม่? หรือจะมีการวางแผนสำหรับ ES7 var aThing = getSomething() ... aThing = possiblyNull?.thing สิ่งนี้จะประมาณ: if (possiblyNull != null) aThing = possiblyNull.thing เป็นการดีที่โซลูชันไม่ควรกำหนด (แม้undefined) ให้กับaThingถ้าpossiblyNullเป็นnull

2
Javascript ES6 ส่งออก const เทียบกับการส่งออกให้
สมมติว่าฉันมีตัวแปรที่ฉันต้องการส่งออก ความแตกต่างระหว่างอะไร export const a = 1; VS export let a = 1; ฉันเข้าใจความแตกต่างระหว่างconstและletแต่เมื่อคุณส่งออกสิ่งที่แตกต่างกันคืออะไร

10
วิธีบอก webpack dev server ให้บริการ index.html สำหรับเส้นทางใด ๆ
/arbitrary/routeตอบสนองเราเตอร์ช่วยให้ตอบสนองปพลิเคชันที่จะจับ เพื่อให้มันใช้งานได้ฉันต้องการเซิร์ฟเวอร์ของฉันเพื่อส่งแอป React ในทุกเส้นทางที่ตรงกัน แต่เซิร์ฟเวอร์ dev ของ webpackไม่จัดการจุดสิ้นสุดตามอำเภอใจ มีวิธีแก้ปัญหาที่นี่โดยใช้เซิร์ฟเวอร์ด่วนเพิ่มเติม วิธีการอนุญาตสำหรับ webpack-dev-server เพื่ออนุญาตจุดเข้าใช้งานจาก react-router แต่ฉันไม่ต้องการไฟเซิร์ฟเวอร์ด่วนอื่นให้อนุญาตการจับคู่เส้นทาง ฉันแค่อยากบอก webpack dev server ให้ตรงกับ url และส่งแอปตอบกลับของฉันมาให้ฉัน กรุณา.

19
แปลงสตริงเป็นสตริงแม่แบบ
เป็นไปได้ไหมที่จะสร้างเทมเพลตสตริงเป็นสตริงปกติ let a="b:${b}"; แล้วแปลงเป็นสตริงแม่แบบ let b=10; console.log(a.template());//b:10 โดยไม่ต้องeval, new Functionและวิธีการอื่น ๆ ของการสร้างรหัสแบบไดนามิก?

14
Enums ใน Javascript กับ ES6
ฉันกำลังสร้างโปรเจ็กต์ Java เก่าใน Javascript และตระหนักว่าไม่มีวิธีที่ดีในการทำ enums ใน JS สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); การconstเก็บรักษาไม่ให้Colorsถูกกำหนดใหม่และการแช่แข็งจะป้องกันไม่ให้คีย์และค่ากลายพันธุ์ ฉันใช้ Symbols Colors.REDไม่เท่ากับ0หรืออย่างอื่นนอกจากตัวมันเอง สูตรนี้มีปัญหาหรือไม่? มีวิธีที่ดีกว่า? (ฉันรู้ว่าคำถามนี้ค่อนข้างซ้ำ แต่Q / As ก่อนหน้านี้ทั้งหมดค่อนข้างเก่าและ ES6 ทำให้เรามีความสามารถใหม่ ๆ ) แก้ไข: อีกวิธีหนึ่งที่เกี่ยวข้องกับปัญหาการทำให้เป็นอนุกรม แต่ฉันเชื่อว่ายังมีปัญหาเรื่องขอบเขต const enumValue = (name) => Object.freeze({toString: () => name}); const Colors …

5
Object.freeze () เทียบกับ const
Object.freeze()ดูเหมือนเป็นวิธีการอำนวยความสะดวกในการเปลี่ยนผ่านที่จะใช้constใน ES6 มีบางกรณีที่ทั้งสองเข้ามาแทนที่ในโค้ดหรือมีวิธีที่ดีกว่าในการทำงานกับข้อมูลที่ไม่เปลี่ยนรูปหรือไม่? ฉันควรใช้Object.freeze()จนถึงช่วงเวลาที่เบราว์เซอร์ทั้งหมดที่ฉันทำงานร่วมกับการสนับสนุนconstแล้วเปลี่ยนไปใช้constแทนหรือไม่?


11
วิธีการเผยแพร่โมดูลที่เขียนใน ES6 ถึง NPM?
ฉันกำลังจะเผยแพร่โมดูลให้กับ NPM เมื่อฉันคิดเกี่ยวกับการเขียนใหม่ใน ES6 เพื่อพิสูจน์ในอนาคตและเรียนรู้ ES6 ฉันใช้ Babel เพื่อ transpile เป็น ES5 และทำการทดสอบ แต่ฉันไม่แน่ใจว่าจะดำเนินการอย่างไร: ฉันจะส่งสัญญาณและเผยแพร่โฟลเดอร์ผลลัพธ์ / ออกไปยัง NPM หรือไม่ ฉันจะรวมโฟลเดอร์ผลลัพธ์ใน repo Github ของฉันหรือไม่ หรือฉันจะรักษา 2 repos ซึ่งมี ES6 code + gulp script สำหรับ Github และอีกหนึ่งที่มี transpiled results + tests สำหรับ NPM กล่าวโดยย่อ: ฉันต้องใช้ขั้นตอนอะไรบ้างในการเผยแพร่โมดูลที่เขียนใน ES6 ถึง NPM ในขณะที่ยังคงอนุญาตให้ผู้ใช้เรียกดู / แยกรหัสต้นฉบับ

5
Object.is vs ===
ฉันสะดุดตัวอย่างรหัสซึ่งใช้การเปรียบเทียบนี้: var someVar = 0; Object.is(false, someVar); //Returns false ฉันรู้ว่าfalse == 0จะเป็นนั่นเป็นเหตุผลที่เรามีtrue=== เป็นวิธีการที่Object.isแตกต่างจาก===?

6
ฉันจะรวมสองวัตถุจาวาสคริปต์เข้าด้วยกันใน ES6 + ได้อย่างไร
ฉันเบื่อที่จะต้องเขียนโค้ดแบบนี้: function shallowExtend(obj1,obj2){ var key; for ( key in obj2 ) { if ( obj2.hasOwnProperty(key) === false ) continue; obj1[key] = obj2[key] } } หรือถ้าฉันไม่ต้องการเขียนโค้ดด้วยตัวเองให้ใช้ไลบรารี่ที่ทำไปแล้ว แน่นอนว่า ES6 + กำลังจะมาช่วยเหลือสิ่งนี้จะทำให้เรามีอะไรบางอย่างที่เหมือนObject.prototype.extend(obj2...)หรือObject.extend(obj1,obj2...) ES6 + จะให้ฟังก์ชั่นดังกล่าวหรือไม่ ถ้ายังไม่ได้มีการวางแผนการใช้งานเช่นนั้น? หากไม่ได้วางแผนมาทำไมล่ะ

6
วิธีการจำลองการนำเข้าโมดูล ES6 ได้อย่างไร
ฉันมีโมดูล ES6 ต่อไปนี้: network.js export function getDataFromServer() { return ... } widget.js import { getDataFromServer } from 'network.js'; export class Widget() { constructor() { getDataFromServer("dataForWidget") .then(data => this.render(data)); } render() { ... } } getDataFromServerฉันกำลังมองหาวิธีการทดสอบเครื่องมือที่มีอินสแตนซ์ของจำลอง ถ้าฉันใช้<script>s แยกต่างหากจากโมดูล ES6 เช่นเดียวกับใน Karma ฉันสามารถเขียนการทดสอบของฉันเช่น: describe("widget", function() { it("should do stuff", function() { let …

9
วิธีตั้งค่าอุปกรณ์ประกอบฉากเริ่มต้นของคอมโพเนนต์บน React component
ฉันใช้รหัสด้านล่างเพื่อตั้งค่าอุปกรณ์ประกอบฉากเริ่มต้นในส่วนประกอบ React แต่ไม่ได้ผล ในrender()วิธีนี้ฉันสามารถเห็นผลลัพธ์ "อุปกรณ์ประกอบฉากที่ไม่ได้กำหนด" พิมพ์อยู่บนคอนโซลของเบราว์เซอร์ ฉันจะกำหนดค่าเริ่มต้นสำหรับอุปกรณ์ประกอบฉากได้อย่างไร export default class AddAddressComponent extends Component { render() { let {provinceList,cityList} = this.props if(cityList === undefined || provinceList === undefined){ console.log('undefined props') } ... } AddAddressComponent.contextTypes = { router: React.PropTypes.object.isRequired } AddAddressComponent.defaultProps = { cityList: [], provinceList: [], } AddAddressComponent.propTypes = { userInfo: …

4
วิธีใช้ ES6 Fat Arrow เพื่อ. filter () อาร์เรย์ของวัตถุ
ฉันกำลังพยายามใช้ฟังก์ชั่นลูกศร ES6 .filterเพื่อส่งคืนผู้ใหญ่ (แจ็ค & จิล) ดูเหมือนว่าฉันไม่สามารถใช้คำสั่ง if ฉันต้องรู้อะไรบ้างเพื่อที่จะทำสิ่งนี้ใน ES6 var family = [{"name":"Jack", "age": 26}, {"name":"Jill", "age": 22}, {"name":"James", "age": 5 }, {"name":"Jenny", "age": 2 }]; let adults = family.filter(person => if (person.age > 18) person); // throws error (8:37) SyntaxError: unknown: Unexpected token (8:37) |let adults = family.filter(person …

6
วิธีการนำเข้าและส่งออกส่วนประกอบโดยใช้ React + ES6 + webpack
ผมเล่นไปรอบ ๆ ด้วยReactและES6ใช้และbabel webpackฉันต้องการสร้างคอมโพเนนต์หลาย ๆ ไฟล์ในไฟล์ที่แตกต่างกันนำเข้าในไฟล์เดียวและรวมเข้ากับไฟล์webpack สมมติว่าฉันมีส่วนประกอบบางอย่างดังนี้: my-navbar.jsx import React from 'react'; import Navbar from 'react-bootstrap/lib/Navbar'; export class MyNavbar extends React.Component { render(){ return ( <Navbar className="navbar-dark" fluid> ... </Navbar> ); } } main-page.jsx import React from 'react'; import ReactDOM from 'react-dom'; import MyNavbar from './comp/my-navbar.jsx'; export class MyPage extends …

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