ecmascript-harmony相关内容

如何在 coffeescript 中启用和声语法支持?

我使用带有 --harmony 标志的 node.js(0.11.13) 并使用了 function *() 和 yield 关键字. 我尝试借助 coffeescript 简化我在 node.js 上的开发,到目前为止它运行良好,但我遇到了 yield 和声明生成器的麻烦 - 它抱怨 'reserved关键字产量'. 有什么想法吗? 解决方案 另一种打开黑色次元之门的方法是: ..
发布时间:2022-01-24 10:54:38 前端开发

如何为 JavaScript Set 自定义对象相等性

新的 ES 6 (Harmony) 引入了新的 Set 对象.Set 使用的身份算法类似于 === 运算符,因此不太适合比较对象: var set = new Set();set.add({a:1});set.add({a:1});控制台.log([...set.values()]);//数组 [对象,对象] 如何自定义 Set 对象的相等性以便进行深度对象比较?有没有类似 Java equa ..
发布时间:2022-01-17 17:50:14 前端开发

没有回调的 JavaScript 原生 Promise()

看看这个 jQuery 代码: var promise = new Deferred(),一些;一些 = 功能(承诺){//做很酷的事情承诺.resolve();};promise.then(/* 回调很酷的东西 */);//初始化一切一些(承诺); 我不确定这种方法的架构正确性,但我使用了很长时间,对我来说很方便. 在原生 JavaScript 中,我不能使用这种方法.构造函数 new ..

ES6 Map 和 WeakMap 有什么区别?

看这个和this MDN 页面似乎 Maps 和 WeakMaps 之间的唯一区别是 WeakMaps 缺少“大小"属性.但这是真的吗?它们有什么区别? 解决方案 来自 同样的页面,部分“为什么弱地图?": 有经验的 JavaScript 程序员会注意到这个 API 可以在 JavaScript 中使用两个数组(一个用于键,一个用于值)由 4 个 API 方法共享.这样的实现将有两个 ..
发布时间:2021-12-23 11:59:40 前端开发

和谐集合的用户定义对象相等性 (es6)

我有一个问题,我生成了许多值,需要确保我只使用唯一的值.由于我使用的是带有 --harmony 标志的节点 js,并且可以访问和声集合,因此我决定 Set 可能是一个选项. 我正在寻找类似于以下示例的内容: 'use strict';函数 Piece(x,y){这个.x = x这.y = y}功能板(宽度,高度,件){this.width = 宽度this.height = 高度this. ..
发布时间:2021-12-23 11:54:05 前端开发

我们可以用 ES6 Generator 做什么而不能用 for 循环?

我了解了 ES6 的特性,而 Generators 引起了我的注意.我想到的一件事是链接 Promise 对象,而我无法用循环来做.我们将能够做哪些其他机制,而我们以前无法做到? 我确实理解这是一个宽泛的问题,但目前除了 Promises 之外我想不出任何其他的东西. 解决方案 通过使用 yield,可以在函数的控制流中的任何点暂停生成器,从而保存当前的执行状态(范围和堆栈). ..
发布时间:2021-12-23 11:53:19 前端开发

ES6 中的函数参数定义

我确信这相对简单,而且我遗漏了一些明显的东西.我正在阅读关于 ES6 的 Mozilla 的教程,以及他们的 关于解构的章节 包含以下模式: 功能参数定义 作为开发人员,我们通常可以通过接受一个更符合人体工程学的 API具有多个属性的单个对象作为参数而不是迫使我们的 API 消费者记住许多个人的顺序参数.我们可以使用解构来避免重复这个单一的每当我们想要引用它的属性之一时,参数对象: ..
发布时间:2021-12-23 11:44:42 前端开发

是否有一种机制可以在没有可变变量的情况下在 ES6(ECMAScript 6)中循环 x 次?

在 JavaScript 中循环 x 次的典型方法是: for (var i = 0; i 但我根本不想使用 ++ 运算符或有任何可变变量.那么,在 ES6 中,有没有办法以另一种方式循环 x 次?我喜欢 Ruby 的机制: x.time 做 |i|do_stuff(i)结尾 JavaScript/ES6 中是否有类似的东西?我可以作弊并制作自己的发电机: function* time ..
发布时间:2021-12-23 11:36:32 前端开发

除了一个键之外,如何克隆一个 JavaScript 对象?

我有一个扁平的 JS 对象: {a: 1, b: 2, c: 3, ..., z:26} 我想克隆除一个元素之外的对象: {a: 1, c: 3, ..., z:26} 最简单的方法是什么(如果可能,最好使用 es6/7)? 解决方案 如果你使用 Babel 你可以使用下面的将属性 b 从 x 复制到变量 b 然后将其余属性复制到变量 y 的语法: let x = {a: 1, ..

将 Symbols 引入 ES6 的动机是什么?

更新:最近一篇精彩文章来自 Mozilla 出现了.如果您好奇,请阅读它. 你可能知道它们是 计划在 ECMAScript 6 中包含 新的 Symbol 原始类型(更不用说其他一些疯狂的东西).我一直认为 Ruby 中的 :symbol 概念是不必要的;我们可以轻松地使用普通字符串代替,就像我们在 JavaScript 中所做的那样.现在他们决定让 JS 中的事情复杂化. 我不明白动 ..
发布时间:2021-12-23 11:31:13 前端开发

单行从 ES 6 中的对象中获取一些属性

如何在 ES6 中以最紧凑的方式编写一个只需要几个属性的函数? 我想出了使用解构 + 简化对象字面量的解决方案,但我不喜欢在代码中重复字段列表. 有更精简的解决方案吗? (v) =>{让 { id, 标题 } = v;返回 { id, 标题 };} 解决方案 这里有一些更精简的内容,尽管它并没有避免重复字段列表.它使用“参数解构"来避免需要 v 参数. ({id, title} ..

JavaScript ES6:测试箭头函数、内置函数、常规函数?

是否有一种优雅的方式将 Harmony 的细长箭头函数与常规函数和内置函数区分开来? Harmony wiki 指出: 箭头函数类似于内置函数,因为缺少 .prototype 和任何 [[Construct]] 内部方法.所以 new (() => {}) 会抛出一个 TypeError 否则箭头就像函数 这意味着,您可以测试箭头函数,例如: !(()=>{}).hasOwnP ..

我什么时候应该在 ECMAScript 6 中使用箭头函数?

使用 () =>{} 和 function () {} 我们得到了两种非常相似的在 ES6 中编写函数的方法.在其他语言中,lambda 函数通常通过匿名来区分自己,但在 ECMAScript 中,任何函数都可以是匿名的.这两种类型中的每一种都有唯一的使用域(即当 this 需要显式绑定或显式不绑定时).在这些领域之间,有大量的情况可以使用任何一种符号. ES6 中的箭头函数至少有两个限制: ..

如何将集合转换为数组?

Set 似乎是创建具有保证唯一元素的数组的好方法,但它没有公开任何获取属性的好方法,除了生成器 [Set].values,它在mySet.values.next() 的尴尬方式. 如果你能在 Sets 上调用 map 和类似的函数,那就没问题了.但你也不能那样做. 我尝试过 Array.from,但似乎只将类数组(NodeList 和 TypedArrays ?)对象转换为数组.另一个 ..
发布时间:2021-11-18 02:04:24 前端开发