Articles of ecmascript 6

在一个expression式中加载和使用ES6模块

使用node.js模块语法,您可以加载一个模块并将其全部用于一个expression式中: const numCPUs = require('os').cpus().length; ES6模块是否有相同的function? import os from 'os'; const numCPUs = os.cpus().length; 是我能得到的最接近的; 这是两个完整的陈述,给我留下了一个不需要的os绑定。

在OR赋值中需要在yieldexpression式周围使用括号的确切语法歧义是什么?

下面的代码… 假定产量是在一个生成器函数内部,而else是被定义的等等。 const value = something || yield else(); …在V8(Chrome或Nodejs)中生成以下内容: const start = initial || yield wait(); ^^^^^ SyntaxError: Unexpected strict mode reserved word …这在Firefox中: SyntaxError: yield is a reserved identifier 我首先注意到了我正在写的一个蓝鸟 协程 。 解决方法是将yield wait()放在括号中。 这个错误发生在parsing时间而不是执行时间。 所以,我的第一个假设是,这是因为这里有一个句法模糊。 我看了一下yield关键字 ,它将其定义为: [rv] = yield [expression]; yield接受一个expression式并返回一个值。 这不会发生|| (OR)运算符为const value = yield else(); ; 所以,我看着运营商的优先 。 || […]

Node.js不支持ES6导入和导出

我正在使用WebStorm 2016.2.2构build一个项目。 我使用Node.js的6.6.0版本 我已经将JavaScript版本设置为ES6,但是import和export关键字出现“意外标记”错误。 我不明白Lambdaexpression式BTW。 为什么我得到这个错误? 我做错了什么或节点只是不支持import和export没有巴别(即使我已经设置为ES6的JavaScript版本)?

JavaScript的ES6导入没有名称

我正在运行Webpack,Babel和Vue.js,我想分割我的入口文件。 目前我有一个app.js文件,这是我的应用程序的起点。 我有一些代码我想要放入一个bootstrap.js文件,我想包括在我的主要app.js文件我可以有一个干净的文件开始与Vue和添加组件,因为我去。 一些我想放在我的bootstrap.js文件中的例子: import messagesNL from './translations/nl'; Vue.use(VeeValidate, { locale: 'nl', dictionary: { nl: { messages: messagesNL } } }); window.Vue = Vue; 所以非常多的插件,全局configuration等设置。我觉得这不是你的典型模块,我发现很难创build一个像这个文件的结构模块,所以我基本上在我的app.js文件中使用这个: import bootstrap from './bootstrap'; 不知道这是否会起作用,似乎只是将所有东西都整齐地导入,而不需要像module exports {}那样进行module exports {} 。 现在我分配给这个文件的bootstrapvariables在app.js是未使用的,因为它只是用来请求文件,我的IDE是'greys`类的,让我知道它是未使用的。 有没有另一种语法,这样我就不必为它指定一个名字了? 这种方法可以分割我的文件,还是应该做别的? 我还没有把它放到一个适当的模块中,因为那样它就有了它自己的局部范围,我不能确定如何用所有的插件来设置Vue等等。如果有人有更好的build议,我可以打开它。 干杯。

ES6自执行导入

我已经要求它自己执行并将结果保存到variables中 var $ = require('gulp-load-plugins')(); 我正在玩巴贝尔,并试图找出如何在ES6中做到这一点。 现在显然我可以做类似的事情 import gulpLoadPlugins from 'gulp-load-plugins'; const $ = gulpLoadPlugins(); 但是我想知道是否有一些很好的方法来做到这一点,就像require一样。

es6 Javascript类使用这个里面的callback

新的es6类允许您在方法内部使用自引用variables。 但是,如果一个类方法有一个子函数或一个callback函数,那么这个函数/callback就不再有权访问自引用variablesthis class ClassName { constructor(dir){ this.dir = dir; fs.access(this.dir, fs.F_OK | fs.W_OK, this.canReadDir);//nodejs fs.access with callback } canReadDir(err){ this.dir;// NO ACCESS to class reference of this } //OR aMethod(){ function aFunc(){ this.dir;// NO ACCESS to class reference of this } } } 有没有解决这个问题?

类构造函数不能被调用没有“新”

刚刚升级到4.1.2节点,并使用Mongorito(使用ES6)访问Mongo,我得到这个: 模型文件: var Mongorito = require('mongorito'); var Model = Mongorito.Model; var config = require('../config/config'); Mongorito.connect(config.mongo.url); class Listing extends Model {} module.exports = Listing; 我正在包括它: var Listing = require('../models/listing'); var listing = yield Listing.where('cacheKey', key).findOne(); TypeError: Class constructors cannot be invoked without 'new' at Listing.Model (/node_modules/mongorito/lib/mongorito.js:140:15) at new Listing (/models/listing.js:7:14) at Query.find (/node_modules/mongorito/lib/query.js:355:21) at [object Generator].next […]

ES6类中的constr.apply(this,args)

我已经使用下面的函数来创build一些未知类的实例: Kernel.prototype._construct = function (constr, args) { function F() { constr.apply(this, args); // EXCEPTION! } F.prototype = constr.prototype; return new F(); }; 如果我使用原型,一切正常: function Person(name, surname) { this.name = name; this.surname = surname; } var person = Kernel._construct(Person, ["name", "surname"]); // WORKS! 但是,有些人正在使用节点v4 +中使用ES6本机类的库: class Person { constructor(name, surname) { this.name = name; this.surname = […]

ECMAScript 6类属性下划线前缀

我所见过的类模式很像这样: class Foo { constructor(x, y, z) { this._x = x; this._y = y; this._z = z; } get x() { return this._x; } set x(value) { //I acctually do some stuff here this._x = value; } get y() { return this._y; } set y(value) { //I acctually do some stuff here this._y = value; […]

在React中没有使用ES6获取来定义获取方法

嘿家伙我有我的第一个反应js应用程序中获取函数的麻烦。 这是我的项目的结构: hello-world — app — components — main.jsx — node_modules — public — build.js — index.html — package.json 这是我用npm安装的: npm install react react-dom babel-core babel-loader babel-preset-es2015 babel-preset-react webpack –save-dev npm install –save isomorphic-fetch es6-promise 我使用webpack webpack.config module.exports = { entry: './app/components/main.jsx', output: { path: './public/', filename: "build.js", }, module: { loaders: [ { exclude: […]