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

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

7
ฉันจะจำลองการนำเข้าโมดูล ES6 โดยใช้ Jest ได้อย่างไร
ฉันเริ่มคิดว่ามันเป็นไปไม่ได้ แต่ฉันต้องการถามต่อไป ฉันต้องการทดสอบว่าหนึ่งในโมดูล ES6 ของฉันเรียกโมดูล ES6 อื่นด้วยวิธีเฉพาะ ด้วยจัสมินนี่เป็นเรื่องง่ายสุด ๆ - รหัสแอพ: // myModule.js import dependency from './dependency'; export default (x) => { dependency.doSomething(x * 2); } และรหัสทดสอบ: //myModule-test.js import myModule from '../myModule'; import dependency from '../dependency'; describe('myModule', () => { it('calls the dependency with double the input', () => { …

1
NodeJS วางแผนที่จะสนับสนุนโมดูลนำเข้า / ส่งออก es6 (es2015)
ฉันดูทั่วอินเทอร์เน็ตโดยไม่มีคำตอบที่ชัดเจนสำหรับเรื่องนี้ ปัจจุบัน NodeJS ใช้เฉพาะ CommonJS syntax เพื่อโหลดโมดูลและถ้าคุณต้องการใช้ไวยากรณ์โมดูล ES2015 จริงๆคุณต้อง transpile มาก่อนหรือใช้ตัวโหลดโมดูลภายนอกตอนรันไทม์ ปัจจุบันฉันยังไม่มั่นใจที่จะใช้วิธีใดวิธีหนึ่งจากสองวิธีนี้ผู้ดูแลระบบ NodeJS วางแผนที่จะสนับสนุนโมดูล ES2015 หรือไม่? ฉันไม่พบคำใบ้เกี่ยวกับเรื่องนี้เลย ในขณะนี้ NodeJS 6.x อ้างว่าสนับสนุนคุณสมบัติ 96% ของ ES2015 แต่ไม่มีการอ้างอิงถึงโมดูลใด ๆ ( ลิงก์สนับสนุน NodeJS ES2105 ) คุณรู้หรือไม่ว่า NodeJS จะสนับสนุนโมดูลเหล่านี้นอกกรอบในอนาคตอันใกล้

3
ส่งออก typescript เทียบกับการส่งออกเริ่มต้น
ความแตกต่างใน typescript ระหว่างexportและdefault exportคืออะไร ในแบบฝึกหัดทั้งหมดฉันเห็นผู้คนกำลังเข้าร่วมexportชั้นเรียนของพวกเขาและฉันไม่สามารถรวบรวมรหัสของฉันถ้าฉันไม่เพิ่มdefaultคำหลักก่อนที่จะส่งออก นอกจากนี้ฉันไม่สามารถหาร่องรอยของคำหลักที่การส่งออกเริ่มต้นใด ๆ อย่างเป็นทางการในเอกสารที่พิมพ์ด้วยพิมพ์ดีด export class MyClass { collection = [1,2,3]; } ไม่ได้รวบรวม แต่: export default class MyClass { collection = [1,2,3]; } ทำ. ข้อผิดพลาดคือ: error TS1192: Module '"src/app/MyClass"' has no default export.

5
ES6 นำเข้าโดยใช้ที่ ('@') เส้นทางเข้าสู่ระบบในโครงการ vue.js โดยใช้ Webpack
ฉันเริ่มโครงการ vue.js ใหม่ดังนั้นฉันจึงใช้เครื่องมือ vue-cli เพื่อพิจารณาโครงการ webpack ใหม่ (เช่นvue init webpack) ขณะที่ฉันกำลังเดินผ่านไฟล์ที่สร้างขึ้นฉันสังเกตเห็นการนำเข้าต่อไปนี้ในsrc/router/index.jsไฟล์: import Vue from 'vue' import Router from 'vue-router' import Hello from '@/components/Hello' // <- this one is what my qusestion is about Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'Hello', component: Hello } ] }) …

5
มีการประกาศตัวแปรที่มีการอนุญาตหรือไม่เผยแพร่ใน ES6 หรือไม่
Наэтотвопросестьответына กองมากเกินнарусском : Всплываютлипеременные, объявленныеспомощьюให้и const в ES6? ฉันเล่นกับ ES6 มาระยะหนึ่งแล้วและสังเกตว่าในขณะที่ตัวแปรที่ประกาศด้วยvarถูกยกขึ้นตามที่คาดไว้ ... console.log(typeof name); // undefined var name = "John"; ... ตัวแปรที่ประกาศด้วยletหรือconstดูเหมือนจะมีปัญหากับการชักรอก: console.log(typeof name); // ReferenceError let name = "John"; และ console.log(typeof name); // ReferenceError const name = "John"; นี่หมายความว่าตัวแปรที่ประกาศด้วยletหรือconstไม่ถูกยกขึ้นมา? เกิดอะไรขึ้นที่นี่จริงเหรอ? มีความแตกต่างระหว่างletและconstในเรื่องนี้หรือไม่?

16
การเพิ่มแท็กสคริปต์ใน React / JSX
ฉันมีปัญหาที่ค่อนข้างตรงไปตรงมาในการพยายามเพิ่มสคริปต์แบบอินไลน์ให้กับองค์ประกอบ React สิ่งที่ฉันมี: 'use strict'; import '../../styles/pages/people.scss'; import React, { Component } from 'react'; import DocumentTitle from 'react-document-title'; import { prefix } from '../../core/util'; export default class extends Component { render() { return ( <DocumentTitle title="People"> <article className={[prefix('people'), prefix('people', 'index')].join(' ')}> <h1 className="tk-brandon-grotesque">People</h1> <script src="https://use.typekit.net/foobar.js"></script> <script dangerouslySetInnerHTML={{__html: 'try{Typekit.load({ async: true …

30
reactjs ให้ข้อผิดพลาด Uncaught TypeError: การแสดงออกที่ยอดเยี่ยมจะต้องเป็นโมฆะหรือฟังก์ชั่นไม่ได้ไม่ได้กำหนด
ฉันใช้ reactjs เมื่อฉันเรียกใช้รหัสด้านล่างเบราว์เซอร์กล่าวว่า: Uncaught TypeError: Super expression ต้องเป็น Null หรือฟังก์ชั่นโดยไม่ได้กำหนด คำแนะนำใด ๆ ที่เป็นสิ่งที่ผิดจะได้รับการชื่นชม บรรทัดแรกที่ใช้ในการรวบรวมรหัส: browserify -t reactify -t babelify examples/temp.jsx -o examples/public/app.js และรหัส: var React = require('react'); class HelloMessage extends React.Component { render() { return <div>Hello </div>; } } ปรับปรุง: หลังจากการเผาไหม้ในขุมนรกเป็นเวลาสามวันกับปัญหานี้ฉันพบว่าฉันไม่ได้ใช้รุ่นล่าสุดของการตอบสนอง ติดตั้งทั่วโลก: sudo npm install -g react@0.13.2 ติดตั้งในเครื่อง: npm install …

13
เป็นไปได้หรือไม่ที่จะนำเข้าโมดูลจากไฟล์ทั้งหมดในไดเรกทอรีโดยใช้ไวด์การ์ด?
ด้วย ES6 ฉันสามารถนำเข้าการส่งออกจำนวนมากจากไฟล์ดังนี้: import {ThingA, ThingB, ThingC} from 'lib/things'; อย่างไรก็ตามฉันชอบองค์กรที่มีหนึ่งโมดูลต่อไฟล์ ฉันจบด้วยการนำเข้าเช่นนี้: import ThingA from 'lib/things/ThingA'; import ThingB from 'lib/things/ThingB'; import ThingC from 'lib/things/ThingC'; ฉันชอบที่จะทำสิ่งนี้: import {ThingA, ThingB, ThingC} from 'lib/things/*'; หรือสิ่งที่คล้ายกันโดยมีหลักการที่เข้าใจว่าแต่ละไฟล์มีการส่งออกเริ่มต้นหนึ่งรายการและแต่ละโมดูลมีชื่อเหมือนกับไฟล์ เป็นไปได้ไหม

5
วิธีการส่งออกวัตถุที่นำเข้าใน ES6
กรณีใช้งานง่าย: ฉันแค่ต้องการส่งออกวัตถุที่มีชื่อเหมือนที่นำเข้ามา ตัวอย่างเช่น: import React from 'react'; export React; แต่มันไม่ทำงาน ฉันต้องเขียน: import React from 'react'; export const React = React; แต่นี่มันแปลก วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร? อัปเดต : ขอบคุณสำหรับความช่วยเหลือและการอ้างอิง ฉันได้แก้ปัญหาของฉันด้วยเบาะแสมากมาย ฉันต้องการแบ่งปันกรณีทั่วไปให้ฉันและวิธีแก้ปัญหา การนำเข้าส่งออก import d, {obj} from '...'; export {obj, d}; export {obj as name1, d as name2}; ส่งออกการนำเข้าที่มีชื่อทั้งหมดอีกครั้ง export * from '...'; export * …

3
“ function *” ใน JavaScript คืออะไร
ในหน้านี้ฉันพบประเภทฟังก์ชั่น JavaScript ใหม่: // NOTE: "function*" is not supported yet in Firefox. // Remove the asterisk in order for this code to work in Firefox 13 function* fibonacci() { // !!! this is the interesting line !!! let [prev, curr] = [0, 1]; for (;;) { [prev, curr] = [curr, …

7
ฉันสามารถใช้ไวยากรณ์ฟังก์ชั่นลูกศรของ ES6 กับเครื่องกำเนิดไฟฟ้าได้หรือไม่? (เครื่องหมายลูกศร)
ฉันจะอธิบายสิ่งนี้อย่างไร: function *(next) {} ด้วยลูกศร ฉันลองชุดค่าผสมทั้งหมดที่ฉันสามารถนึกได้และไม่พบเอกสารใด ๆ (ปัจจุบันใช้โหนด v0.11.14)

2
เหตุใดส่วนประกอบของปฏิกิริยาตอบสนอง es6 จึงทำงานได้กับ“ การส่งออกเริ่มต้น” เท่านั้น
องค์ประกอบนี้ใช้งานได้: export class Template extends React.Component { render() { return ( <div> component </div> ); } }; export default Template; หากฉันลบแถวสุดท้ายออกจะไม่ทำงาน Uncaught TypeError: Cannot read property 'toUpperCase' of undefined ฉันเดาว่าฉันไม่เข้าใจบางสิ่งในไวยากรณ์ es6 ไม่จำเป็นต้องส่งออกโดยไม่มีเครื่องหมาย "ค่าเริ่มต้น" ใช่หรือไม่

6
วิธีแปลงคีย์แผนที่เป็นอาเรย์?
ช่วยบอกว่าฉันมีแผนที่ต่อไปนี้: let myMap = new Map().set('a', 1).set('b', 2); และฉันต้องการได้ ['a', 'b'] ตามข้างบน โซลูชันปัจจุบันของฉันดูเหมือนยาวและน่ากลัวมาก let myMap = new Map().set('a', 1).set('b', 2); let keys = []; for (let key of myMap) keys.push(key); console.log(keys); จะต้องมีวิธีที่ดีกว่าไม่ใช่เหรอ?

10
เข้าถึงดัชนีองค์ประกอบอาเรย์ ES6 ภายในวงรอบ
เราสามารถเข้าถึงองค์ประกอบต่างๆโดยใช้ for-of loop: for (const j of [1, 2, 3, 4, 5]) { console.log(j); } ฉันจะแก้ไขรหัสนี้เพื่อเข้าถึงดัชนีปัจจุบันได้อย่างไร ฉันต้องการที่จะบรรลุสิ่งนี้โดยใช้สำหรับไวยากรณ์ของทั้งสำหรับแต่ละหรือใน


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