2015-02-04 5 views
1

나는 새로운 기능을 만들기 위해 ES6의 방법으로 내 손을 잡고있다.ES6 큰 화살표 표기법 제공 기능 SyntaxError : 누락; before statement

나는 골프를하려고합니다.

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

하지만 이것은 비밀 오류 반환 :

SyntaxError: missing ; before statement 

을 내가 괄호없이하려고하면 :

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

I를

내가 지금까지 무엇을 가지고 folowing 오류가 발생합니다.

SyntaxError: expected expression, got '^' 

정규식이 자체적으로 작동합니다.

직접 시도해보십시오.

누구든지 내가 뭘 잘못하고 있는지 조언 해 줄 수 있습니까?


필자는 최신 Firefox 버전 (현재 버전 35.0.1)에서이를 테스트했습니다.

콘솔에 똑바로 사용했습니다.이 팬 버그는 없습니다!

답변

4

은 당신이 인수 s을 받아 /[^aeiou]{3}|[jqxz]/.test(s)를 반환하는 arrow function를 생성

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

을 원하는 생각합니다.

이 함수는 변수 F에 할당됩니다. 당신은 또한 ES5에서 작동 이는 없습니다 더 이상 대안을 사용할 수 있으며 각 호출에서 정규식 개체를 다시하지 않기 때문에 더 나은 수행해야


참고.

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

신성한 신! 그것은 빨랐다! o.O 그리고 아직 downvotes도없고, 나에게도 좋다. 미련한 내 어리 석음. 도와 주셔서 감사합니다. –

+0

더 짧은 것 ... 나는'true' 또는'false'를 반환하는 함수를 작성해야합니다. ES6가 ** 단축 된 ** 기능을 만드는 방식으로, 나는 그것을 사용했습니다. 아이디어는 그것을 최소한으로 줄이는 것입니다. –

관련 문제