Questions tagged «ecmascript-6»

ECMAScript规范的2015版本现已成为标准(ECMAScript 2015)。仅在问题专门与ECMAScript 2015中提供的新功能或技术更改有关的情况下使用此标记。


10
如何告诉Webpack开发服务器为任何路由提供index.html
React Router允许React应用处理/arbitrary/route。为了使其正常工作,我需要我的服务器在任何匹配的路由上发送React应用程序。 但是webpack开发服务器不能处理任意端点。 这里有一个使用附加快递服务器的解决方案。 如何允许webpack-dev-server允许react-router的入口点 但是我不想启动另一个Express服务器来允许路由匹配。我只想告诉webpack开发服务器匹配任何URL,并向我发送我的react应用。请。


11
forEach不是JavaScript数组的函数错误
我试图做一个简单的循环: const parent = this.el.parentElement console.log(parent.children) parent.children.forEach(child => { console.log(child) }) 但我收到以下错误: VM384:53未捕获的TypeError:parent.children.forEach不是一个函数 即使parent.children日志: 可能是什么问题呢? 注意:这是一个JSFiddle。


11
如何将用ES6编写的模块发布到NPM?
当我考虑在ES6中重写它时,我打算将其发布给NPM,以适应将来的需求并学习ES6。我已经使用Babel移植到ES5,并运行测试。但是我不确定如何进行: 我是否要转换并把生成的/ out文件夹发布到NPM? 我是否将结果文件夹包含在我的Github存储库中? 还是我要维护2个存储库,一个使用Github的ES6代码+ gulp脚本,一个使用转换后的结果+ NPM测试? 简而言之:我需要采取什么步骤将ES6编写的模块发布到NPM,同时仍然允许人们浏览/分叉原始代码?

8
将长模板文字行包装为多行,而无需在字符串中创建新行
在es6模板文字中,如何在不创建新行的情况下将长模板文字包装成多行? 例如,如果您这样做: const text = `a very long string that just continues and continues and continues` 然后,它将为该字符串创建一个新行符号,以解释它具有新行。如何在不创建换行符的情况下将长模板文字包装到多行?

5
Object.is vs ===
我偶然发现了使用此比较的代码示例: var someVar = 0; Object.is(false, someVar); //Returns false 我知道false == 0会是true这就是为什么我们有===。 如何Object.is不同===?

6
如何在ES6 +中将两个javascript对象合并在一起?
我厌倦了总是不得不编写这样的代码: function shallowExtend(obj1,obj2){ var key; for ( key in obj2 ) { if ( obj2.hasOwnProperty(key) === false ) continue; obj1[key] = obj2[key] } } 或者,如果我不想自己编写代码,请实现一个已经执行过的库。ES6 +肯定会在这方面获救,这将为我们提供类似a 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() { ... } } 我正在寻找一种使用的模拟实例测试Widget的方法getDataFromServer。如果<script>像Karma中那样使用单独的而不是ES6模块,则可以这样编写测试: describe("widget", function() { it("should do stuff", function() { let getDataFromServer = spyOn(window, "getDataFromServer").andReturn("mockData") let widget = new …

4
如何使用ES6胖箭头对对象数组进行.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 => if (person.age > 18) person); 我的工作ES5示例: let …

13
ES6中的Java枚举
我正在用Javascript重建一个旧的Java项目,并意识到在JS中没有很好的枚举方法。 我能想到的最好的是: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); 的const保持Colors被重新分配,并冷冻它防止突变的键和值。我正在使用Symbols,所以它Colors.RED不等于0或除自身以外的其他任何符号。 这种配方有问题吗?有没有更好的办法? (我知道这个问题有点重复,但是以前的所有Q / A都已经很老了,ES6为我们提供了一些新功能。) 编辑: 另一个解决序列化问题的解决方案,但我认为仍然存在领域问题: const enumValue = (name) => Object.freeze({toString: () => name}); const Colors = Object.freeze({ RED: enumValue("Colors.RED"), BLUE: enumValue("Colors.BLUE"), GREEN: enumValue("Colors.GREEN") }); 通过使用对象引用作为值,您将获得与Symbols相同的避免碰撞的功能。

5
Object.freeze()与const
Object.freeze()似乎是过渡到constES6中使用的一种过渡便利方法。 是否有两种情况都在代码中占据一席之地,还是存在处理不可变数据的首选方法? 我应该使用Object.freeze()直到支持的所有浏览器都const转而使用const?

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 React.Component{ render(){ return( <MyNavbar /> …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.