ES6大箭头符号函数给出SyntaxError:缺少;在声明之前

时间:2015-02-04 09:18:22

标签: javascript syntax-error ecmascript-6

我正在尝试用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!

1 个答案:

答案 0 :(得分:4)

我想你想要

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

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

该函数已分配给变量F


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

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