在各种浏览器中是否有与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) 现在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) 我正在使用带有标志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) 我一直熟悉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)
这颗星是什么意思?
我真的很喜欢ES6发电机.有没有办法在浏览器中检测生成器支持?我知道目前生成器可能不在很多浏览器中(或者可能根本没有浏览器),但这对我来说是可以的.
我试过了:
try {
function *(){}
} catch(err) {
console.log("No generators");
}
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.
如何在浏览器中检测对ES6生成器的支持?
javascript browser generator ecmascript-harmony browser-feature-detection
在项目的所有文件中导入一些模块的最佳方法是什么,所以我不必编写如下内容:
import React from 'react';
import Reflux from 'reflux';
import reactMixin from 'react-mixin';
Run Code Online (Sandbox Code Playgroud)
在几乎每个文件?
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) 我已经和KoaJS合作了一段时间,我们可以在使用--harmony标志时轻松使用'let'关键字和生成器,但我找不到节点v0.11.x提供了多少支持同时使用相同的.
我尝试使用默认值参数初始化但无法成功.
是否有任何可用的源可以使用和声标志列出节点v0.11.x中支持的ECS 6的功能?或者,如果有任何npm模块可用于节点,可能允许我使用相同的?
提前致谢.
我试图用箭头功能node v0.10.33下Ubuntu 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) 我写了一个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) javascript ×8
node.js ×6
generator ×3
browser ×1
co ×1
ecmascript-5 ×1
ecmascript-6 ×1
html5 ×1
koa ×1
module ×1
monads ×1
npm ×1
yield ×1