Questions tagged «ecmascript-6»

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

6
序列的Python“枚举”的ES6等效项是什么?
Python具有内置函数enumerate,以获取可迭代的(index, item)对。 ES6是否具有等效的数组?它是什么? def elements_with_index(elements): modified_elements = [] for i, element in enumerate(elements): modified_elements.append("%d:%s" % (i, element)) return modified_elements print(elements_with_index(["a","b"])) #['0:a', '1:b'] 等效于ES6,但不包含enumerate: function elements_with_index(elements){ return elements.map(element => elements.indexOf(element) + ':' + element); } console.log(elements_with_index(['a','b'])) //[ '0:a', '1:b' ]

6
为什么JSX道具不应该使用箭头功能或绑定?
我正在用我的React应用程序运行lint,并且收到此错误: error JSX props should not use arrow functions react/jsx-no-bind 这是我运行箭头功能(在里面onClick)的地方: {this.state.photos.map(tile => ( <span key={tile.img}> <Checkbox defaultChecked={tile.checked} onCheck={() => this.selectPicture(tile)} style={{position: 'absolute', zIndex: 99, padding: 5, backgroundColor: 'rgba(255, 255, 255, 0.72)'}} /> <GridTile title={tile.title} subtitle={<span>by <b>{tile.author}</b></span>} actionIcon={<IconButton onClick={() => this.handleDelete(tile)}><Delete color="white"/></IconButton>} > <img onClick={() => this.handleOpen(tile.img)} src={tile.img} style={{cursor: 'pointer'}}/> …

5
具有require的Node.js ES6类
到目前为止,我已经node.js通过以下方式创建了类和模块: var fs = require('fs'); var animalModule = (function () { /** * Constructor initialize object * @constructor */ var Animal = function (name) { this.name = name; }; Animal.prototype.print = function () { console.log('Name is :'+ this.name); }; return { Animal: Animal } }()); module.exports = animalModule; 现在使用ES6,您可以像下面这样创建“实际”类: class …


12
setState不会立即更新状态
我想问一下为什么在执行onclick事件时状态没有变化。我已经搜索了一段时间,我需要在构造函数中绑定onclick函数,但状态仍未更新。这是我的代码: import React from 'react'; import Grid from 'react-bootstrap/lib/Grid'; import Row from 'react-bootstrap/lib/Row'; import Col from 'react-bootstrap/lib/Col'; import BoardAddModal from 'components/board/BoardAddModal.jsx'; import style from 'styles/boarditem.css'; class BoardAdd extends React.Component { constructor(props){ super(props); this.state = { boardAddModalShow: false } this.openAddBoardModal = this.openAddBoardModal.bind(this); } openAddBoardModal(){ this.setState({ boardAddModalShow: true }); // After setting …

4
ECMAScript 6类中的getter和setter是什么?
对于ECMAScript 6类中的getter和setter的意义,我感到困惑。什么目的?以下是我要参考的示例: class Employee { constructor(name) { this._name = name; } doWork() { return `${this._name} is working`; } get name() { return this._name.toUpperCase(); } set name(newName){ if(newName){ this._name = newName; } } }

13
比较ECMA6集是否相等
您如何比较两个JavaScript集?我尝试使用==,===但都返回false。 a = new Set([1,2,3]); b = new Set([1,3,2]); a == b; //=> false a === b; //=> false 这两个集合是等效的,因为根据定义,集合没有顺序(至少不是通常如此)。我查看了“在MDN上设置”文档,发现没有任何用处。有人知道怎么做吗?

7
为什么我可以在javascript中更改常量的值
我知道ES6尚未标准化,但是目前许多浏览器都支持 const JS中的关键字。 规范中写道: 常量的值不能通过重新分配而更改,并且常量也不能重新声明。因此,尽管可以在不初始化的情况下声明常量,但这样做是没有用的。 当我做这样的事情: const xxx = 6; xxx = 999; xxx++; const yyy = []; yyy = 'string'; yyy = [15, 'a']; 我看到一切正常xxx仍6和yyy是[]。 但是,如果这样做yyy.push(6); yyy.push(1);,我的常量数组已更改。现在是[6, 1]这样,顺便说一句,我仍然无法用更改它yyy = 1;。 我是一个错误,还是我错过了什么?我在最新的chrome和FF29中尝试过

5
匿名JavaScript函数f => f到底做什么?
我正在使用一个具有将函数作为参数的函数的第三方库。我正在做一些条件检查,以决定是否将特定功能添加为参数,在某些情况下,我不想提供功能。在这种情况下提供null会引发错误。 我发现此代码有效,但我不完全了解发生了什么。 compose(__DEV__ ? devTools() : f => f) 是f => f相当于() => {}一个空的匿名函数?

5
Webpack Babel 6 ES6装饰器
我有一个用Webpack作为捆绑器的用ES6编写的项目。大部分转译工作正常,但是当我尝试在任何地方包含装饰器时,都会出现此错误: Decorators are not supported yet in 6.x pending proposal update. 我查看了babel问题追踪器,但在那儿找不到任何内容,因此我假设我使用的是错误的。我的webpack配置(相关位): loaders: [ { loader: 'babel', exclude: /node_modules/, include: path.join(__dirname, 'src'), test: /\.jsx?$/, query: { plugins: ['transform-runtime'], presets: ['es2015', 'stage-0', 'react'] } } ] 我没有其他问题,箭头功能,销毁所有功能都正常,这是唯一不起作用的方法。 我知道我总是可以降级到前一段时间使用过的babel 5.8,但是如果有任何方法可以使它在当前版本(v6.2.0)中运行,它将有所帮助。

2
为什么babel重写导入的函数调用(0,fn)(…)?
给定一个输入文件,例如 import { a } from 'b'; function x () { a() } 巴别塔将其编译为 'use strict'; var _b = require('b'); function x() { (0, _b.a)(); } 但是在松散模式下编译时,函数调用输出为 _b.a(); 我已经对添加逗号运算符的位置进行了一些研究,希望能对此发表评论。负责添加它的代码在这里。

5
承诺,传递其他参数然后链接
一个承诺,例如: var P = new Promise(function (resolve, reject) { var a = 5; if (a) { setTimeout(function(){ resolve(a); }, 3000); } else { reject(a); } }); 在我们调用之后,然后在promise上的方法: P.then(doWork('text')); doWork函数如下所示: function doWork(data) { return function(text) { // sample function to console log consoleToLog(data); consoleToLog(b); } } 如何避免在doWork中返回内部函数,以便从promise和text参数访问数据?是否有避免内部功能的技巧?

2
带箭头功能的ES6吸气剂/吸气剂
我正在使用babel6,对于我的宠物项目,我正在为XMLHttpRequest创建一个包装器,以供使用的方法: open = (method, url, something) => { return this.xhr.open(method, url, something); } 但是对于属性箭头功能不起作用 这有效: get status() { return this.xhr.status; } 但我不能使用 get status = () => this.xhr.status; 这是故意的吗?

6
将ES6可迭代转换为数组
假设您有一个类似数组的Javascript ES6 Iterable,您事先知道它的长度是有限的,那么将其转换为Javascript数组的最佳方法是什么? 这样做的原因是,许多下划线和lodash之类的js库仅支持Arrays,因此,如果您希望在Iterable上使用其任何功能,则必须首先将其转换为Array。 在python中,您可以只使用list()函数。ES6中是否有等效功能?

11
使用传播语法在ES6中进行深层复制
我正在尝试为我的Redux项目创建一个深层复制映射方法,该方法将处理对象而不是数组。我了解到,在Redux中,每个状态都不应更改以前的状态。 export const mapCopy = (object, callback) => { return Object.keys(object).reduce(function (output, key) { output[key] = callback.call(this, {...object[key]}); return output; }, {}); } 有用: return mapCopy(state, e => { if (e.id === action.id) { e.title = 'new item'; } return e; }) 但是,它不会深度复制内部项目,因此我需要将其调整为: export const mapCopy = (object, callback) => …

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.