JavaScript Standard Style

EnglishEspañol (Latinoamérica)Italiano (Italian)한국어 (Korean)Português (Brasil)简体中文 (Simplified Chinese)繁體中文 (Taiwanese Mandarin)

js-standard-style

이것은 JavaScript standard 규칙입니다.

standard에 대해 배우는 가장 좋은 방법은 그냥 설치하고 코드에 시도해 보는 것입니다.

규칙

여러 줄의 삼항 연산자 를 사용할 경우 ?:를 각각의 행으로 처리해야합니다.

eslint: operator-linebreak

// ✓ 좋아요
var location = env.development ? 'localhost' : 'www.api.com'
 
// ✓ 좋아요
var location = env.development
  ? 'localhost'
  : 'www.api.com'
 
// ✗ 피하세요
var location = env.development ?
  'localhost' :
  'www.api.com'

** 변수에 delete 연산자는 없습니다.

eslint: no-delete-var

var name
delete name     // ✗ 피하세요

세미콜론

도움될만한 읽을거리

도움될만한 영상

현재 사용되는 모든 인기 code minifiers는 AST 기반 축소를 사용하므로 아무런 문제없이 세미콜론이없는 JavaScript를 처리 할 수 있습니다. (JavaScript에서는 세미콜론이 필요하지 않기 때문에)

Excerpt from "An Open Letter to JavaScript Leaders Regarding Semicolons":

[자동 세미콜론 삽입에 의존]은 매우 안전하며 모든 브라우저가 이해할 수있는 완벽하게 유효한 JS입니다. Closure 컴파일러, yuicompressor, packer 및 jsmin은 모두이를 적절히 축소 할 수 있습니다. 어디서나 성능에 영향을 미치지 않습니다.

당신을 교육하는 대신,이 언어 공동체의 지도자들이 거짓말과 두려움을 주셨다는 것을 유감스럽게 생각합니다. 부끄러운 일 이었어. JS에서의 진술이 어떻게 실제로 종료되었는지 (어떤 경우에는 종료되지 않았는지) 배우는 것이 좋습니다. 그래서 당신이 아름답게 찾은 코드를 작성할 수 있습니다.

일반적으로 \n은 다음과 같은 경우를 제외하고는 명령문을 끝냅니다 :

  1. 명령문은 닫히지 않은 괄호, 배열 리터럴 또는 객체 리터럴을 가지거나 명령문을 종료하는 유효한 방법이 아닌 다른 방법으로 끝납니다. (예 :. 또는,로 끝남)
  2. 선은 -- 또는 ++입니다 (이 경우 다음 토큰을 감소/증가시킵니다).
  3. { 가 없는 경우 중에서 for(), while(), do, if(), else 입니다.
  4. 다음 줄은 [, (, +, *, /, -, ,, ., 또는 단일 표현식에서 두 개의 토큰 사이에서만 발견 될 수있는 다른 이항 연산자로 시작합니다.

첫 번째는 꽤 분명합니다. JSLint조차 JSON과 괄호로 묶인 구조체의 \n 문자와 ,로 끝나는 여러 줄에 걸쳐있는 var 문과도 괜찮습니다.

두 번째는 아주 이상합니다. 나는 당신이 'i\n++\nj라고 쓰고 싶지만, (이런 종류의 대화 밖에서) 파싱 된 사실을 본 적이 없습니다.i; ++j가 아니라i++;j`입니다.

세 번째는 일반적으로 멸시받는 경우 잘 이해됩니다. if (x)\ny()if (x) { y() }와 같습니다. 구문은 블록이나 명령문에 도달 할 때까지 끝나지 않습니다.

if(x);if (x) {} 또는 "If x, nothing do nothing"과 동일합니다. 이것은 일반적으로 루프 체크가 수행되는 루프에 적용됩니다 또한 업데이트 기능입니다. 비정상적이지만 전례가 아닙니다.

네 번째는 일반적으로 "오, 설마, 당신은 세미콜론이 필요합니다!"라는 사례가 있습니다. 하지만, 이전 라인의 연속이 아니더라도 세미콜론으로 접두어를 붙이는 것은 쉽습니다. 예를 들어, 다음코드로 대신할 수 있습니다.

foo();
[1,2,3].forEach(bar);

다음과 같이 할 수 있습니다.

foo()
;[1,2,3].forEach(bar)

장점은 ( 또는 [ 없이 세미콜론으로 시작하는 줄을 보지 못한다면 익숙해지기 쉽습니다.