标签: ecmascript-harmony

Javascript:各种浏览器中是否有与caniuse.com相同的HTML5 API/ECMAScript5/ECMAScript6?

在各种浏览器中是否有与caniuse.com相同的HTML5 API/ECMAScript5/ECMAScript6?

caniuse.com确实有一些javascript报道,但像http://caniuse.com/#feat=filesystem这样的页面并没有真正告诉你除了是/否/部分以外的任何内容.实际上,我正在寻找像quirksmode与caniuse交叉的东西,在那里我可以详细查看任何API或方法,看看它目前在哪里实现(并且没有bug).例如,我可以查看哪个版本的浏览器当前可以使用哪个版本的网站:

Object.keys(CONSTANTS.TEXT).forEach(function(key) {
    languages.push([key, CONSTANTS.TEXT[key].languageName]);
});
Run Code Online (Sandbox Code Playgroud)

javascript html5 ecmascript-5 ecmascript-harmony

14
推荐指数
1
解决办法
3758
查看次数

在JavaScript中实现monad

现在node.js支持ECMAScript Harmony生成器,我们可以do在Haskell中简洁地编写monadic代码:

function monad(unit, bind) {
    return function (f) {
        return function () {
            var g = f.apply(this, arguments);

            return typeOf(g) === "Generator" ? send() : unit(g);

            function send(value) {
                var result = g.next(value);
                if (result.done) return unit(result.value);
                else return bind(result.value, send);
            }
        };
    };
}

function typeOf(value) {
    return Object.prototype.toString.call(value).slice(8, -1);
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中monad是一个函数,可用于创建确定性 monad,如:

var maybe = monad(function (a) {
    return {just: a};
}, function (m, f) {
    return m …
Run Code Online (Sandbox Code Playgroud)

javascript monads generator node.js ecmascript-harmony

14
推荐指数
2
解决办法
2334
查看次数

NodeJS和会在导入时给出SyntaxError

我正在使用带有标志child_process的ES6测试节点,--harmony但是在导入时它在第一步失败了.有任何想法吗?

import {'spawn'} from child_process;
console.log(spawn);
Run Code Online (Sandbox Code Playgroud)

我跑:

node --harmony test.js
Run Code Online (Sandbox Code Playgroud)

我得到:

:1
(function (exports, require, module, __filename, __dirname) { import {spawn} f
                                                              ^^^^^^
SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)

javascript node.js ecmascript-harmony

14
推荐指数
1
解决办法
9710
查看次数

星(*)在Koa框架中的JavaScript函数定义中意味着什么?

我一直熟悉Koa(http://koajs.com/).许多示例包括星号代替函数名称.例如,在hello world示例中有:

var koa = require('koa');
var app = koa();

app.use(function *(){
  this.body = 'Hello World';
});

app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

这颗星是什么意思?

javascript ecmascript-harmony koa

14
推荐指数
1
解决办法
3127
查看次数

如何检测ES6发生器?

我真的很喜欢ES6发电机.有没有办法在浏览器中检测生成器支持?我知道目前生成器可能不在很多浏览器中(或者可能根本没有浏览器),但这对我来说是可以的.

我试过了:

try {
  function *(){}
} catch(err) {
  console.log("No generators");
}
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

如何在浏览器中检测对ES6生成器的支持?

javascript browser generator ecmascript-harmony browser-feature-detection

13
推荐指数
2
解决办法
1346
查看次数

ES6全球导入

在项目的所有文件中导入一些模块的最佳方法是什么,所以我不必编写如下内容:

import React from 'react';
import Reflux from 'reflux';
import reactMixin from 'react-mixin';
Run Code Online (Sandbox Code Playgroud)

在几乎每个文件?

javascript module ecmascript-harmony ecmascript-6

13
推荐指数
2
解决办法
8142
查看次数

SyntaxError:意外的标识符(ES6中的生成器)

在阅读了MDN生成器文档后,我想出了这个简单的实验:

var nodes = {
    type: 'root',
    value: [
        { type: 'char', value: 'a' },
        { type: 'char', value: 'b' },
        { type: 'char', value: 'c' },
    ],
};

function* recursiveGenerator(node) {
    if (node.type === 'root') {
        node.value.forEach(function (subnode) {
            for (var suffix of recursiveGenerator(subnode)) {
                yield suffix;
            }
        });
    }

    else {
        yield node.value;
    }
}

for (generated of recursiveGenerator(nodes)) {
    console.log(generated);
}
Run Code Online (Sandbox Code Playgroud)

在node.js v0.11.9上运行它并--harmony设置了标志会产生以下错误:

alix@900X4C:~$ node --version
v0.11.9
alix@900X4C:~$ node --harmony test.js …
Run Code Online (Sandbox Code Playgroud)

javascript yield generator node.js ecmascript-harmony

12
推荐指数
1
解决办法
2万
查看次数

Node.js上的Ecmascript 6支持

我已经和KoaJS合作了一段时间,我们可以在使用--harmony标志时轻松使用'let'关键字和生成器,但我找不到节点v0.11.x提供了多少支持同时使用相同的.

我尝试使用默认值参数初始化但无法成功.

是否有任何可用的源可以使用和声标志列出节点v0.11.x中支持的ECS 6的功能?或者,如果有任何npm模块可用于节点,可能允许我使用相同的?

提前致谢.

javascript node.js ecmascript-harmony

12
推荐指数
1
解决办法
1万
查看次数

箭头功能在节点中不起作用 - 在Ubuntu下的和声

我试图用箭头功能node v0.10.33Ubuntu 14.04(我运行与节点--harmony标志),但我得到这个错误:

console.log( [1,2,3,4].map(x => x*x) );
                          ^
SyntaxError: Unexpected token >
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3
Run Code Online (Sandbox Code Playgroud)

node.js ecmascript-harmony arrow-functions

12
推荐指数
2
解决办法
7048
查看次数

如何用和声标志启动全局npm模块

我写了一个npm模块,可以全局安装dm-npm.

我喜欢在该模块中使用co.

我怎么能告诉模块它在全局启动时以和声标志运行?

这是package.json:

{
  "name": "dm-npm",
  "version": "0.0.3",
  "description": "npm helper",
  "main": "index.js",
  "scripts": {
    "test": "mocha --reporter nyan",
    "start": "node --harmony ./bin/dm-npm"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/divramod/dm-npm.git"
  },
  "keywords": [
    "npm",
    "template"
  ],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/divramod/dm-npm/issues"
  },
  "homepage": "https://github.com/divramod/dm-npm",
  "devDependencies": {
    "chai": "^2.1.0",
    "mocha": "^2.1.0"
  },
  "dependencies": {
    "co": "^4.4.0",
    "co-prompt": "^1.0.0",
    "colors": "~1.0.3",
    "shelljs": "^0.3.0"
  },
  "bin": {
    "dmnpm": "./bin/dm-npm"
  }
}
Run Code Online (Sandbox Code Playgroud)

使用co函数运行时出现以下错误消息:

> $ dmnpm init                                                                                                                         
/usr/local/lib/node_modules/dm-npm/index.js:152 …
Run Code Online (Sandbox Code Playgroud)

node.js npm ecmascript-harmony co

12
推荐指数
1
解决办法
4278
查看次数