Tag: ecmascript 6

使用ECMAScript 6

我正在寻找一种方法来在浏览器的控制台中运行ECMAScript 6代码,但大多数浏览器不支持我正在寻找的function。 例如Firefox是唯一支持箭头function的浏览器。 有没有办法(扩展,用户等)我可以在Chrome上运行这些function?

为什么以及何时需要在React中绑定函数和eventHandlers?

class SomeClass extends Component{ someEventHandler(event){ } render(){ return <input onChange={——here——}> } } 我看到——here——部分的不同版本。 // 1 return <input onChange={this.someEventHandler.bind(this)}> // 2 return <input onChange={(event) => { this.someEventHandler(event) }> // 3 return <input onChange={this.someEventHandler}> 这些版本有什么不同? 还是只是一个偏好问题? 谢谢大家的回答和意见。 所有这些都是有帮助的,我强烈build议阅读这个链接第一,如果你对我感到困惑。 http://blog.andrewray.me/react-es6-autobinding-and-createclass/

ES6模块:导出单个类的静态方法或多个单独的方法

我正在使用ECMAScript6模块。 从下面的选项中,从模块导出/导入多个方法的正确方法是什么? 单一类的静态方法: //—— myClass.js —— export default class myClass { static myMethod1() { console.log('foo'); } static myMethod2(args…) { console.log('bar'); } } //—— app.js —— import myClass from 'myClass'; myClass.myMethod1(); //foo 多个导出的方法: //—— myMethods.js —— export function myMethod1() { console.log('foo'); } export function myMethod2() { console.log('bar'); } //—— app.js —— import {myMethod1, myMethod2} from 'myMethods'; […]

ES6承诺 – 像async.each?

试图找出如何find像async.eachSeriesfunction完全一样的东西,我需要按顺序(不是并行)运行的asynchronous操作列表,但无法find一种方法来执行本地ES6,任何人都可以build议,请? PS想到发电机/产量,但没有经验,所以我没有意识到它可以帮助我。 编辑1 每个请求,这里是一个例子: 假设这个代码: let model1 = new MongooseModel({prop1: "a", prop2: "b"}); let model2 = new MongooseModel({prop1: "c", prop2: "d"}); let arr = [model1 , model2]; 现在,我想以一系列的方式运行它,而不是平行运行,所以使用“asynchronous”NPM很容易: async.eachSeries(arr, (model, next)=>{ model.save.then(next).catch(next); }, err=>{ if(err) return reject(error); resolve(); }) 我的问题是:用ES6,我可以做到吗? 没有NPM的“asynchronous”包? 编辑2 与asynchronous/等待它可以很容易地完成: let model1 = new MongooseModel({prop1: "a", prop2: "b"}); let model2 = new […]

“未捕获的ReferenceError:这是没有定义”在类的构造函数

我正在使用JavaScript / ES6中的新东西。 我得到一个Uncaught ReferenceError: this is not defined(…) player.js:5在我的代码。 据我所知,这里没有错误! 这是一个错误? 任何解决方法? 的index.html <html> <head> <script type="text/javascript" src="js/entity.js"></script> <script type="text/javascript" src="js/player.js"></script> <link href="css/style.css" rel="stylesheet" type="text/css"> <title>Test</title> </head> <body> <canvas id="screen" width=500 height=500></canvas> <script type="text/javascript">initialize();</script> </body> </html> entity.js "use strict"; class Entity { constructor() { console.log("Entity"); } } player.js "use strict"; class Player extends Entity […]

当然,ES6 +必须有一种方法来合并两个JavaScript对象,它是什么?

我厌倦了总是不得不写这样的代码: 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 +也提供这样的function吗? 如果不在那里,那么是否计划了这样的function? 如果没有计划,那为什么不呢?

reactjs给出错误Uncaught TypeError:超级expression式必须为null或函数,而不是未定义的

我正在使用reactjs。 当我在浏览器下面运行代码时说: Uncaught TypeError:超级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 react@0.13.2 确保浏览器也使用正确的版本: <script type="text/javascript" src="react-0.13.2.js"></script> 希望这可以拯救别人三天的宝贵生命。

在JavaScript中映射vs对象

我刚刚发现了chromestatus.com,在我失去了几个小时之后,发现了这个特性 : 地图:地图对象是简单的键/值地图。 这使我困惑。 普通的JavaScript对象是字典,那么Map与字典有什么不同呢? 从概念上讲,它们是相同的(根据地图和字典之间的区别是什么? ) 文档chromestatus引用不帮助: Map对象是键/值对的集合,其中键和值可以是任意的ECMAScript语言值。 独特的键值可能只发生在Map集合中的一个键/值对中。 使用映射创build时select的比较algorithm进行区分的关键值不同。 一个Map对象可以按照插入顺序迭代它的元素。 Map对象必须使用哈希表或其他机制来实现,平均而言,这些机制提供的访问时间对于集合中元素的数量是次线性的。 这个Map对象规范中使用的数据结构只是用来描述Map对象所需的可观察的语义。 它不是一个可行的实现模型。 …仍然听起来像是一个对象,很显然我错过了一些东西。 为什么JavaScript获得(良好支持的) Map对象? 它有什么作用?

Reactfunction无状态组件,PureComponent,组件; 有什么区别,什么时候应该用什么?

知道从React v15.3.0开始 ,我们有了一个名为PureComponent的新的基类, 用于内置PureRenderMixin 。 我所理解的是,在这个引擎之下,我们在shouldComponentUpdate里面使用了一个比较简单的道具。 现在我们有3种方法来定义一个React组件: 没有扩展任何类的function性无状态组件 一个扩展了PureComponent类的组件 一个扩展Component类的正常组件 一段时间以前,我们曾经把无状态组件称为纯组件,甚至是哑组件。 看起来像“纯”这个词的整个定义现在已经在React中改变了。 虽然我理解这三者之间的基本差异,但我仍然不确定何时select什么 。 另外,每个方面的性能影响和权衡是什么? 更新 : 这些是我希望得到澄清的问题: 我应该select将我的简单组件定义为function性(为了简单起见)还是扩展PureComponent类(为了性能)? 性能提升,我得到一个真正的权衡,我失去了简单性? 当我总能使用PureComponent来获得更好的性能时,是否需要扩展正常的Component类?

将脚本标记添加到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 });}catch(e){}'}}></script> </article> </DocumentTitle> ); } }; […]