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]/);
我正在尝试用 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]/);