Questions tagged «ecmascript-6»

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


26
(a == 1 && a == 2 && a == 3)可以评估为真吗?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 主持人注意:请不要编辑代码或删除此声明。空格模式可能是问题的一部分,因此不应不必要地对其进行篡改。如果您处于“空白无关紧要”的阵营中,则应该能够原样接受代码。 有可能用JavaScript (a== 1 && a ==2 && a==3)评估true吗? 这是一家大型科技公司提出的面试问题。它发生在两周前,但我仍在努力寻找答案。我知道我们从不在日常工作中编写此类代码,但我很好奇。

10
使用Node.js require与ES6导入/导出
在我正在合作的项目中,关于可以使用哪种模块系统,我们有两个选择: 导入使用的模块require,并使用导出module.exports和exports.foo。 使用ES6导入模块import,并使用ES6导出export 一项使用另一项有什么性能上的好处?如果要在Node模块上使用ES6模块,还有其他什么应该知道的吗?

11
什么时候应该将花括号用于ES6导入?
似乎很明显,但是我发现自己对于何时使用花括号在ES6中导入单个模块有些困惑。例如,在我正在从事的React-Native项目中,我具有以下文件及其内容: initialState.js var initialState = { todo: { todos: [ {id: 1, task: 'Finish Coding', completed: false}, {id: 2, task: 'Do Laundry', completed: false}, {id: 2, task: 'Shopping Groceries', completed: false}, ] } }; export default initialState; 在TodoReducer.js中,我必须不带花括号将其导入: import initialState from './todoInitialState'; 如果将initialState花括号括起来,则以下代码行将出现以下错误: 无法读取未定义的属性待办事项 TodoReducer.js: export default function todos(state = …

6
返回对象的ECMAScript 6箭头函数
当返回从箭头函数的对象,似乎有必要用一组额外的{}和return因为在语法歧义的关键字。 那意味着我不会写p => {foo: "bar"},但必须写p => { return {foo: "bar"}; }。 如果arrow函数返回的不是对象,则{}和return都是不必要的,例如:p => "foo"。 p => {foo: "bar"}返回undefined。 修饰符p => {"foo": "bar"}抛出“ SyntaxError::意外标记::'”。 有什么明显的我想念的东西吗?

8
什么是javascript中的“导出默认值”?
档案:SafeString.js // Build out our basic SafeString type function SafeString(string) { this.string = string; } SafeString.prototype.toString = function() { return "" + this.string; }; export default SafeString; 我从未见过export default。是否有任何等效的东西export default更容易理解?


3
“箭头功能”和“功能”是否等效/可互换?
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name = name; } // vs const User = name => { this.name = name; }; 原型方法 User.prototype.getName = function() { return this.name; }; // vs User.prototype.getName = () => this.name; 对象(文字)方法 const obj = { getName: function() { // ... } …

14
ES6类变量替代
当前在ES5中,我们许多人在框架中使用以下模式来创建类和类变量,这很方便: // ES 5 FrameWork.Class({ variable: 'string', variable2: true, init: function(){ }, addItem: function(){ } }); 在ES6中,您可以本地创建类,但是没有选择可以使用类变量: // ES6 class MyClass { const MY_CONST = 'string'; // <-- this is not possible in ES6 constructor(){ this.MY_CONST; } } 可悲的是,上述方法不起作用,因为类只能包含方法。 我知道我可以this.myVar = true在constructor...但我不想“垃圾”我的构造,特别是当我有一个更大的类20-30 +参数。 我正在考虑解决该问题的多种方法,但尚未找到任何好的方法。(例如:创建一个ClassConfig处理程序,并传递一个parameter与类分开声明的对象。然后该处理程序将附加到该类。我也在考虑WeakMaps以某种方式进行集成。) 您将如何处理这种情况?


13
JavaScript中“ =>”(等于或大于的箭头)的含义是什么?
我知道>=运算符的含义是大于或等于,但是我已经=>在一些源代码中看到了。该运算符是什么意思? 这是代码: promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => { if (!aDialogAccepted) return; saveAsType = fpParams.saveAsType; file = fpParams.file; continueSave(); }).then(null, Components.utils.reportError);


11
Node.js-SyntaxError:意外的令牌导入
我不明白怎么了。节点v5.6.0 NPM v3.10.6 编码: function (exports, require, module, __filename, __dirname) { import express from 'express' }; 错误: SyntaxError: Unexpected token import at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:387:25) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:140:18) at node.js:1001:3

11
并行调用异步/等待功能
据我了解,在ES7 / ES2016中,将多个awaitin放在代码中的工作方式类似于.then()带有promise的链接,这意味着它们将一个接一个地执行,而不是并行执行。因此,例如,我们有以下代码: await someCall(); await anotherCall(); 我是否正确理解anotherCall()仅在someCall()完成时才会调用?并行调用它们的最优雅方式是什么? 我想在Node中使用它,所以也许有一个异步库解决方案? 编辑:我不满意此问题中提供的解决方案:减速是由于异步生成器中非并行等待promise,因为它使用生成器,并且我询问的是更通用的用例。

9
什么时候应该在ECMAScript 6中使用Arrow函数?
这个问题针对的是那些在即将到来的ECMAScript 6(Harmony)中考虑过代码风格并且已经使用过该语言的人。 通过() => {}和,function () {}我们得到了两种非常相似的方法来在ES6中编写函数。在其他语言中,lambda函数通常通过匿名来区分自己,但是在ECMAScript中,任何函数都可以是匿名的。两种类型中的每一种都有唯一的使用域(即,当this需要显式绑定或显式不绑定时)。在这些域之间,有很多情况下两种表示法都会起作用。 ES6中的箭头功能至少有两个限制: 不要用工作new创建时,不能使用prototype 固定this绑定到初始化范围 除了这两个限制,箭头函数在理论上几乎可以替换任何地方的常规函数​​。在实践中使用它们的正确方法是什么?应该使用箭头功能,例如: “无论它们在哪里工作”,即在每个地方函数不必与this变量无关,我们也没有创建对象。 仅需要绑定到特定范围的“任何需要它们的地方”,即事件侦听器,超时 具有“短”功能但不具有“长”功能 仅对于不包含另一个箭头功能的功能 我正在寻找的是在将来的ECMAScript版本中选择适当的功能符号的指南。指南必须明确,以便可以向团队中的开发人员讲授,并且要保持一致,以便不需要从一个功能符号到另一个功能符号之间不断地来回重构。

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.