Questions tagged «ecmascript-6»

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

3
ES6 + JavaScript模块导出选项
我已经看到ES6模块的公共导出通过以下两种方式完成: // method 1 export var getAnswer = function () { return 'forty two'; }; // method 2 export default function () { return 'forty two'; }; 这些都有效吗? 如果是这样,为什么它们都存在? 使用ES6语法进行模块导出是否还有其他有效选项? 令我惊讶的是,我还没有找到自己的googlefu答案。我只关心ES6模块,而不关心CommonJS,RequireJS,AMD,Node等。

6
生成器的异步/等待和ES6收益之间的区别
我刚刚读了这篇很棒的文章《生成器》,它清楚地突出了此函数,它是处理生成器函数的辅助函数: function async(makeGenerator){ return function () { var generator = makeGenerator.apply(this, arguments); function handle(result){ // result => { done: [Boolean], value: [Object] } if (result.done) return Promise.resolve(result.value); return Promise.resolve(result.value).then(function (res){ return handle(generator.next(res)); }, function (err){ return handle(generator.throw(err)); }); } try { return handle(generator.next()); } catch (ex) { return Promise.reject(ex); } …

3
JS / ES6:解构未定义
我正在使用一些像这样的解构: const { item } = content console.log(item) 但是我应该如何处理content === undefined-这将引发错误? “旧”方式如下所示: const item = content && content.item 因此,如果content未定义->item也将是未定义的。 我可以使用解构来做类似的事情吗?

4
带有--harmony_modules选项的ES2015“导入”在节点v6.0.0中不起作用
我正在使用节点v6.0.0,并想使用ES2016(ES6)。但是我意识到“导入”语法不起作用。ES2015中编写模块化代码的基础不是“导入”吗?我也尝试使用--harmony_modules选项运行节点,但是仍然遇到关于“导入”的相同错误。这是代码。 没有“导入”的工作代码: 'use strict'; let sum = 0; class Number { addNumber(num1, num2) { return num1 + num2; } } let numberObj = new Number(); sum = numberObj.addNumber(1,2); console.log("sum of two number 1 and 2 "+ sum); 无法使用“导入”执行代码: server.js 'use strict'; import Number from "./Number"; let sum = 0; let …

3
ES6-在类中调用静态方法
我有一个此类,它对静态方法进行内部调用: export class GeneralHelper extends BaseHelper{ static is(env){ return config.get('env:name') === env; } static isProd(){ return GeneralHelper.is('prod'); } } 我是否可以使用任何关键字替换以下行中的类名称: GeneralHelper.is('prod'); 在PHP中也有self,static等不ES6提供类似于这些东西吗? TY。

5
ES6模板文字比字符串连接快吗?
在ES6中使用字符串连接或模板文字时,HTML代码生成在现代浏览器中运行的速度可测得更快吗? 例如: 字符串串联 "<body>"+ "<article>"+ "<time datetime='" + date.toISOString() +"'>"+ date +"</time>"+ "</article>"+ "</body>" 模板文字 `<body> <article> <time datetime='${ date.toISOString() }'>${ date }</time> </article> </body>`

6
开关案例语句中的错误重复常量声明
我有以下代码,但出现错误“重复声明query_url”。 switch(condition) { case 'complex': const query_url = `something`; break; default: const query_url = `something`; break; } 我了解到query_url被声明了两次,这是不对的。但是我不知道如何解决这个问题。有人可以帮忙实现这项工作的正确方法吗?


11
Object.values()的替代版本
我正在寻找该Object.values()功能的替代版本。 如此处所述,Internet Explorer不支持该功能。 执行以下示例代码时: var obj = { foo: 'bar', baz: 42 }; console.log(Object.values(obj)); // ['bar', 42] 它在Firefox和Chrome中都可以使用,但是在IE11中引发以下错误: 对象不支持属性或方法的“值” 在这里您可以对其进行测试:Fiddle。 那么,什么是快速解决方案?

5
反应功能组件默认道具与默认参数
在React功能组件中,这是使用Component.defaultProps或在函数定义上使用默认参数来设置默认属性的更好方法,例如: 默认道具: const Component = ({ prop1, prop2 }) => ( <div></div> ) Component.defaultProps = { prop1: false, prop2: 'My Prop', } 默认参数: const Component = ({ prop1 = false, prop2 = 'My Prop' }) => ( <div></div> )

7
Jest是否支持ES6导入/导出?
如果我import/export从ES6使用,那么我所有的Jest测试都会失败并显示以下错误: 意外的保留字 我将受测对象转换为使用旧式IIFE语法,然后突然我的测试通过了。或者,采用一个更简单的测试用例: var Validation = require('../src/components/validation/validation'); // PASS //import * as Validation from '../src/components/validation/validation' // FAIL 同样的错误。显然这里的导入/导出有问题。为了使测试框架满意,使用ES5语法重写代码对我来说是不切实际的。 我有通天的笑话。我尝试了来自GitHub问题的各种建议。到目前为止没有走。 文件package.json "scripts": { "start": "webpack-dev-server", "test": "jest" }, "jest": { "testPathDirs": [ "__tests__" ], "testPathIgnorePatterns": [ "/node_modules/" ], "testFileExtensions": ["es6", "js"], "moduleFileExtensions": ["js", "json", "es6"] }, 文件babelrc { "presets": ["es2015", "react"], …

2
为什么instanceof在babel-node下的Error子类实例上不起作用?
我看到在OS X的babel-node版本6.1.18 / Node版本5.1.0下运行时,该instanceof运算符不适用于Error子类的实例。这是为什么?相同的代码在浏览器中效果很好,请尝试我的小提琴作为示例。 以下代码true在浏览器中输出,而在babel-node下为false: class Sub extends Error { } let s = new Sub() console.log(`The variable 's' is an instance of Sub: ${s instanceof Sub}`) 我只能想象这是由于babel-node中的错误所致,因为它instanceof适用于以外的其他基类Error。 .babelrc { "presets": ["es2015"] } 编译输出 这是babel 6.1.18编译的JavaScript: 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot …


4
React-如何导出纯无状态组件
如何导出无状态的纯哑组件? 如果我使用类,则可以: import React, { Component } from 'react'; export default class Header extends Component { render(){ return <pre>Header</pre> } } 但是,如果我使用纯函数,则无法正常工作。 import React, { Component } from 'react'; export default const Header = () => { return <pre>Header</pre> } 我缺少基本的东西吗?

3
Node.JS中的解构
最近的视频声称,EMCAScript 6解构已在Node.JS中部分实现。我尝试了各种示例(使用v0.10.12和--harmony标志),例如 var [a, b] = [1, 2]; 和 var {a: a, b: b} = {a: 1, b: 2}; 无济于事。此票证似乎表明V8尚不支持解构。 解构真的在Node.JS中部分实现了吗?我可以使用哪些代码片段?

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.