问题标签 [ecmascript-next]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - React 类中的属性初始化器?
我已经开始看到这种模式弹出:
起初我认为这是无效的,直到我查了一下才发现它是 ES7。这是一种安全的(即面向未来的)语法吗?我问是因为我意识到并非 ES6 和 ES7 中的所有语法都被批准,许多只是简单地提出来的。我确实比我一直使用的更喜欢这个:
javascript - 在构造函数之外实例化的 ES6+ 实例属性
在 React/React-Native 中使用 ES6+ 语法foo
,当在构造函数之外定义的变量 被调用时,会以某种方式转换为实例变量this.
。我的断言是真的吗?为什么它甚至可以工作,而不是在构造函数中实例化?这里有一个对应的 React Native 代码片段:
这个关于 ES7 属性初始化器的讨论展示了如何state
在 React/React Native 中以这种方式突出使用变量。
javascript - 解构扩展导入 ES6
似乎抛出了一个 linting 错误。为什么不能在 ES6 导入语句上“传播”?
javascript - async/await 和 ES6 生成器之间的区别
我刚刚阅读了这篇精彩的文章 « Generators »,它清楚地强调了这个函数,它是一个用于处理生成器函数的辅助函数:
我假设或多或少是使用/async
实现关键字的方式。async
await
await
所以问题是,如果是这样的话,那么关键字和关键字之间到底有什么区别yield
?await
总是把某事变成一个承诺,而yield
没有做出这样的保证吗?这是我最好的猜测!
您还可以在本文中看到async
/与生成器的await
相似之处,他在其中描述了“生成”函数ES7 异步函数。yield
javascript - 如何使用 Array.prototype.filter 过滤对象?
给定
arr
我们可以使用Number
构造函数过滤数组中的数字项
是true
和[10]
预期的结果数组?如果我们替换false
为true
arr
使用Array.isArray
String
如果我们想过滤其中的项目arr
是对象,在索引处4
,7
我们尝试
虽然我们更喜欢简单地调用arr.filter(Object)
,但我们可以传递一个函数调用;尝试不同的属性,Object
以便我们最终找到可以用作函数或构造函数的属性或方法,以作为模式传递给以arr.filter(/* method, constructor, other approach */)
返回匹配对象的过滤结果,甚至是输入中对象的属性名称或值大批。
我们开始,天真地,通过检查数组中的项目是否constructor
具有name
等于"Object"
虽然当我们向arr
;添加一个对象时 例如;
c
prototype
和constructor
现在一样undefined
。尽管我们确信这不会返回预期的结果
至少没有返回错误;让我们继续
返回预期的结果;虽然我们正在尝试使用
至
过滤数组
Object
:{}
对象;即使对象没有定义的原型或构造函数;可选地将JSON
字符串转换"{"abc":123}"
为对象;虽然我们还没有走到这一步;将属性名称传递给用作属性名称或对象值的
.filter(callback, this)
模式;this
或利用一种方法使用filter.bind
,.call
或.apply
其他方法从输入数组中过滤对象-不使用完整的.filter(function(prop, value) {})
图案。我们如何将
Object.hasOwnProperty()
调用强制转换为类似于.filter(Object.hasOwnProperty, "abc")
?
提到.call
,在搜索了一个类似的Question并找到.bind
JS Array.prototype.filter onprototype方法之后。尽管不确定如何实现在过滤对象和具有上述特定属性的对象中描述的方法。.apply
请注意,问题也可以通过destructuring
或其他方法解决es-6
,es-7
与 相比,提供可比较甚至更严格的结果.filter()
。也就是说,.filter()
不使用
图案。返回对象;即Object
, {}
; 和按属性过滤的对象;按属性值过滤的对象。
问题:
如何在不使用匿名函数模式的情况下过滤
Object
传递给的数组中带有或不带有原型或构造函数的对象?Array.prototype.filter()
callback
Array.prototype.filter()
如何在不使用匿名函数模式的情况下通过传递属性名称或值来过滤传递给的数组中的特定对象以匹配对象callback
?
javascript - 在 ES2015 中如何确保所有方法都等待对象初始化?使用 ES7 装饰器?
我有一个连接到远程服务的 ES2015 类。
问题是我的代码在它的对象完成连接到远程服务器之前尝试访问这个类。
如果对象尚未完成初始化,我想确保方法不只是给出错误。
我的类中有很多方法依赖于连接的启动和运行,所以如果有一个单一的、易于理解的机制可以应用于所有方法,比如@ensureConnected 装饰器,那就太好了。
在这里摆弄:https ://jsfiddle.net/mct6ss19/2/
我正在使用 ES7 装饰器进行成像以执行测试以查看连接是否已建立,但我不知道如何执行此操作。
javascript - 带有 React 组件的装饰器
@myDecorator
我对使用语法(使用 babel)的能力感到非常兴奋。我正在尝试装饰其中一个生命周期功能,具体来说componentWillMount
,并检查装饰器中组件的props
and context
。但是,我似乎无法访问props
或context
。我不确定这是否是一种反模式,或者我是否只是在解决这个问题。
小例子:
和
我也尝试过装饰器和检查的箭头函数this
,但我不认为装饰器组合的东西是这样工作的。
我还尝试将我的装饰器设为工厂并传入,this.props
但this.context
在this
装饰组件生命周期函数时未定义。
javascript - 可以在构造函数中使用 async/await 吗?
正如问题所述。我是否可以这样做:
javascript - 在声明之前未定义属性初始化器
我正在尝试使用属性初始化程序将箭头函数用作类的方法。但是在声明方法之前,它们是不可访问的。如果我更改声明它们的顺序,它会起作用。
是预期的行为还是 babel 转译
下面的 url 是一个 babel repl 实例,我想演示的代码请参考它。