2017-04-11 2 views
2

Airbnb에 의해 정의 된 JS 코드 스타일을 따르려고합니다.JavaScript 함수 호출의 후행 쉼표

7.15 Functions with multiline signatures, or invocations, should be indented just like every other multiline list in this guide: with each item on a line by itself, with a trailing comma on the last item.

을하지만 할 때 다음과 같은 :

는 는 함수 호출 인수에 대한 후행 쉼표의 규칙은 상태

/* THREE.js constructor for PerspectiveCamera */ 
const camera = new THREE.PerspectiveCamera(
    75, 
    window.innerWidth/window.innerHeight, 
    0.1, 
    1000, 
); 

구글 크롬이 다음 오류와 함께 불평 :

app.js:11 Uncaught SyntaxError: Unexpected token)

후행 쉼표를 제거하면 모든 것이 잘 동작합니다. 이 코드는 Firefox에서 잘 작동하며, Chrome에서 오늘 (11.04.2017) 일주일 전에 작업했음을 확신합니다. 이후로 코드를 변경하지 않았기 때문에 내가 작업중인 앱을 발표하고 있었기 때문에 내 동료.

참고 배열에서 후행 쉼표는 여전히 잘 작동하는지 :

testArray = [ 
    'one', 
    'two', 
    'three', 
]; 

사람이 동작을 설명하거나 좀 더 정보를 찾을 수있는 날 지점 수 있습니까?

우분투 16.04에서 Google 크롬 (버전 57.0.2987.133 (64 비트))을 사용합니다.

+0

이것은 합법적 인 구문으로, miltuple 사람들이 함수에 매개 변수를 추가하는 등의 대규모 코드베이스에서 주로 사용됩니다.하지만 함수 및 배열의 ​​length 속성에 영향을 미치기 때문에 LINTers의 설정이기도합니다. 그것은 버그를 만들 수 있습니다. 또한, IE는 그들을 좋아하지 않는다. http://stackoverflow.com/questions/7246618/are-trailing-commas-in-arrays-and-objects-part-of-the-spec – Shilly

+0

@ Shilly - 크롬과 FF는 후행을 좋아하지 않습니다. 함수 인수에서 쉼표. – nnnnnn

+0

사용 된 버전 및 설정에 따라 다릅니다. Imho 후행 쉼표는 피해야합니다. 따라서 나는 에어 비앤비 스타일을 좋아하지 않습니다. 그러나 그것은 개인적인 의견입니다. – Shilly

답변

1

내 팀이 크롬 55.0.2883.87 사용자의 문제로 방금 문제가 발생했습니다. 이 버전의 Chrome은 위에보고 된 ')'에서 예기치 않은 토큰을보고합니다.

뒤에 오는 쉼표는 크롬 60.0.3112.113으로 겹쳐서 표시되는 것 같습니다. 오류가 없습니다.

그래서 Google은 평가판 쉼표에 대한 지원으로 이동하고 있다고 추론 할 수 있습니다.

+0

공유해 주셔서 감사합니다. 그것은 비슷한 이슈를 가진 사람들에게 좋은 소식입니다. – bmakan