Tag: ecmascript 6

对象解构没有var

为什么如果在它前面没有var关键字,对象解构会抛出一个错误? {a, b} = {a: 1, b: 2}; throws SyntaxError: expected expression, got '=' 以下三个示例没有问题 var {a, b} = {a: 1, b: 2}; var [c, d] = [1, 2]; [e, f] = [1, 2]; 奖金问题:为什么我们不需要var的数组解构? 我遇到了类似这样的问题 function () { var {a, b} = objectReturningFunction(); // Now a and b are local variables in the function, […]

如何在ES2015中编写一个命名的箭头函数?

我有一个函数,我试图转换为ES6中的新的箭头语法。 这是一个命名的function: function sayHello(name) { console.log(name + ' says hello'); } 有没有办法给它一个没有var声明的名字: var sayHello = (name) => { console.log(name + ' says hello'); } 显然,我只能在定义它之后才能使用这个函数。 如下所示: sayHello = (name) => { console.log(name + ' says hello'); } 在ES6中有没有新的方法呢?

以编程方式导航使用反应路由器V4

我刚刚从v3replacereact-router到v4。 但我不知道如何以编程方式在Component的成员函数中导航。 即在handleClick()函数我想导航到/path/some/where处理一些数据。 我曾经这样做: import { browserHistory } from 'react-router' browserHistory.push('/path/some/where') 但是我在v4中找不到这样的界面。 我如何使用v4导航?

在node.js ES6variables导入名称?

是否有可能在使用ES6导入时将某些东西导入到提供variables名称的模块中? 也就是说,我想在运行时导入一些模块,具体取决于configuration中提供的值: import something from './utils/' + variableName;

什么是暂时的死亡区?

我听说在声明之前访问let和const值可能会导致一个ReferenceError因为有些东西叫做时间盲区 。 什么是暂时的死亡地带,它是如何涉及范围和提升,在什么情况下遇到?

什么时候应该在es6箭头函数中使用`return`?

新的es6箭头函数表示在某些情况下return是隐含的: 该expression式也是该函数的隐式返回值。 在哪些情况下,我需要使用es6箭头函数return ?

ES6承诺解决callback?

我想运行相同的行动,无论我的Promise是否成功解决。 我不想将相同的函数绑定到.then两个参数上。 是不是像jQuery一样。 如果不是,我该如何做到这一点?

反引号调用一个函数

我不知道如何解释这一点,但是当我跑步 console.log`1` 在谷歌浏览器,我得到的输出 console.log`1` VM12380:2 ["1", raw: Array[1]] 为什么是反向调用日志function,为什么它做一个raw: Array[1]的指数raw: Array[1] ? 由Catgocat在JS房间里提出的问题,但除了模板化string的东西之外,没有任何答案是有意义的,这并不适合为什么会发生这种情况。

获取类的函数(方法)

我必须dynamic获取ES6类的属性和function。 这甚至有可能吗? 使用for … in循环,我只能循环访问类实例的属性: class Foo { constructor() { this.bar = "hi"; } someFunc() { console.log(this.bar); } } var foo = new Foo(); for (var idx in foo) { console.log(idx); } 输出: bar

从常规的ES6类方法调用静态方法

什么是调用静态方法的标准方法? 我可以考虑使用constructor或使用类本身的名称,我不喜欢后者,因为它不觉得有必要。 前者是推荐的方式,还是有其他的东西? 这是一个(人为的)例子: class SomeObject { constructor(n){ this.n = n; } static print(n){ console.log(n); } printN(){ this.constructor.print(this.n); } }