2012-02-09 11 views
10

나는 더글러스 크로포드 (Douglas Crockford)의 Code Conventions for JavaScript 문서를보고 있는데 그는 var이 알파벳순으로 한 줄에 하나씩 있어야한다고 말하고있다. 그러나 한 줄 'var'선언 또는 한 줄에 하나씩?

var a;     // array of class names 
var c = node.className; // the node's classname 
var i;     // loop counter 

jsLint (및 jsHint)이 표준은 하나의 줄에 선언이며,이 오류

너무 많은 VAR 문

크록 포드의 방법으로 수행하는 경우가 발생합니다 따라서, jsLint는 이렇게하려고합니다.

var a, c = node.className, i; 

이 나에게 매우 모순 된 것, 그리고 프로그램의 전체 범위에서 아마 매우 분하지만, 나는 그것을 오해하기 전에이 권리를 얻을 수 있었으면 해요.

JavaScript vars를 선언 할 때 일반적으로 인정되는 방법은 무엇입니까?

+8

한 줄에 하나씩 투표하고 있습니다. – Zenexer

+2

또 다른 한 라인 옹호자; 훨씬 더 읽기 쉬운, IMO. –

+1

알파벳순으로 배열해야 할 경우, 함수가 너무 큽니다. –

답변

13

LINT는 하나의 var 선언문을 원하지만 여러 줄에 걸쳐 분포 될 수 있습니다.

var a, b, c; 

또는

var a, 
    b, 
    c; 

하나의 명령문을 원하는 이유는 변수는 로컬 범위에 속하는 대한 혼란을 방지하는 것입니다.단일 var 문을 사용하면 모든 로컬 범위 변수가 범위 내의 단일 위치에 포함되며 모든 사람이 코드를 빨리 읽고 해당 내용을 볼 수 있습니다.

이 선언문은 자바 스크립트 호이 스팅 메커니즘이 실행 전에 어쨌든 이동하기 때문에 범위의 맨 위에 추가하는 것이 좋습니다. 범위의 맨 위에 해당 진술을 기대하는 코드를 작성함으로써 호이 스팅 메커니즘은 예기치 않은 동작을 일으킬 수 없습니다.

0

여러 변수를 선언하고 같은 줄에 지정할 수 있습니다. 그것은 개인적인 취향의 문제입니다.

2

인수는하지만, 그것은 훨씬 더 중요 에 동의 표준에 당신의 팀이 지속적으로 사용이 대부분 스타일 토론이다.

3

어느 쪽이든 잘못되었지만 일반적으로 코드 블록의 시작 부분에 한 줄 스타일의 선언을 사용하는 것이 좋습니다. 가장 중요한 것은 일관되게 유지하는 것입니다. 예 :

function() { 
    var foo = "bar", 
     number = 123, 
     etc = "..."; 

    // stuff.. 
} 
+1

감사합니다. @ jdc0589 도움이됩니다. 나는 두 가지 방법이 모두 작동한다는 것을 알고 있기 때문에 "잘못 잡아라"고 말하면 안됩니다. 나는 일반적으로 받아 들여지는 방법으로 더 많은 것을 쏘고 있는데, 이는 대답의 증거에 의해이 접근법을 확실히 가리키고있다. –

3

조차도 괜찮습니다. 이것은 모두 취향에 관한 것입니다. 팀과 함께 일하는 경우 환경 설정에 대해 물어보고 일관성을 유지하십시오.

var a, 
    c = node.className, 
    i; 
+0

아 예, 아주 좋습니다. 양방향에 적합합니다. jsLint를 위반하지 않으며 여전히 Crockford의 표준을 준수합니다. –

2

또 다른 옵션은 (그것이 내가 사용하는 하나)입니다 :

var a = ..., 
    b = ..., 
    c, d; 

이 내가 '때문에 분명히 내가 (선언하고 그들은 모두 어떤 식 으로든 관련이 있다는 것을있어 얼마나 많은 변수하게 나는 같은 공간에서 그들을 선언한다. 그들은 기본적으로 항상 그렇다). 또한 이미 값이있는 변수와 그렇지 않은 변수를 구별하는 데 도움이됩니다. 즉, 아주 드물게 할당하지 않고 변수 만 선언합니다.

다른 표준을 따르는 코드로 작업하지 않는 한, 이것이 내가하는 일입니다. 그리고 그것은 가장 중요한 것입니다 : 프로젝트의 스타일을 따르십시오. 그렇지 않으면 원하는대로 이동하십시오. 정말로 신경 쓰지 않는다면 제 스타일을 사용하십시오.)

+3

"알기 쉽게"? 나는 따라하지 않는다. 훑어 보면 3 개의 변수가 있기 때문에 3 개의 변수가 선언되어 있습니다. 그러나 더 자세히 조사해 보면 실제로 네 가지를 선언하고 있음을 보여줍니다. 네 변수를 선언하기 위해 세 줄을 사용하는 것이 확실하다고 생각하십니까? –

관련 문제