ES6 Big arrow notation function giving SyntaxError: missing ; before statement

ES6 Big arrow notation function giving SyntaxError: missing ; before statement

我正在尝试用 ES6 的方式制作新功能。

我正在尝试打高尔夫球。

这是我目前拥有的:

F=>(s){/[^aeiou]{3}|[jqxz]/.test(s)};

但是 这返回了一个神秘的错误:

SyntaxError: missing ; before statement

如果我不戴牙套试试:

F=>(s)/[^aeiou]{3}|[jqxz]/.test(s);

我收到以下错误:

SyntaxError: expected expression, got '^'

正则表达式本身运行良好。

你可以自己试试

任何人都可以告诉我我做错了什么吗?


我已经在最新的 Firefox 版本(当前版本 35.0.1)上对此进行了测试。

我直接在控制台中使用它:没有 Firebug 这个!

我想你想要

var F = s => /[^aeiou]{3}|[jqxz]/.test(s);

这会创建一个 arrow function,它接收一个参数 s 和 returns /[^aeiou]{3}|[jqxz]/.test(s)

并将该函数分配给变量 F


请注意,您也可以使用一个在 ES5 中工作的不太长的替代方案,并且应该表现更好,因为它不会在每次调用时重新创建正则表达式对象。

var F = /(?:)/.test.bind(/[^aeiou]{3}|[jqxz]/);