[javascript] JavaScript 명명 규칙 [닫기]

JavaScript에 가장 적합한 명명 규칙에 대해 많은 논란이 있습니다 (최소한 논란은 아니지만 논쟁).

변수, 함수, 객체 등의 이름을 어떻게 지정합니까?

오랫동안 JS를 수행하지 않았기 때문에 (나만의 커플) 내 생각을 남겨두고 직장에서 프로젝트에 사용할 명명 규칙이있는 문서를 만들라는 요청을 받았습니다. . 그래서 나는 (구글링)을 둘러 보았고 너무 많은 의견이 있습니다.

JS에서 읽은 책들도 다른 이름 지정 규칙을 사용하지만, 모두 “한 가지를 찾아서 고집하십시오”라는 한 가지 의견에 동의합니다. 그러나 이제는 많은 내용을 읽었으므로 지금 사용했던 것보다 약간 더 나은 다른 방법을 좋아한다는 것을 알았습니다.



답변

Javascript에 대한 Douglas Crockford의 코드 규칙 을 따릅니다 . 또한 JSLint 도구를 사용하여 해당 규칙에 따라 유효성을 검사합니다.


답변

Geoff가 말했듯Crockford의 말이 좋습니다.

내가 따르는 (그리고 널리 사용되는) 유일한 예외는 $ varname을 사용하여 jQuery (또는 모든 라이브러리) 객체를 나타내는 것입니다. 예 :

var footer = document.getElementById('footer');

var $footer = $('#footer');


답변

Google JavaScript 스타일 가이드를 따를 수 있습니다

일반적으로 functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis, EnumNamesLikeThis, methodNamesLikeThis 및 SYMBOLIC_CONSTANTS_LIKE_THIS를 사용하십시오.

편집 : JavaScript 스타일 가이드 및 미용사 의 멋진 컬렉션을 참조하십시오 .


답변

시도하고 싶은 한 가지 규칙은 ‘the’접두어로 정적 모듈의 이름을 지정하는 것입니다. 이것 좀 봐. 다른 사람의 모듈을 사용할 때 어떻게 사용해야하는지 쉽게 알 수 없습니다. 예 :

define(['Lightbox'],function(Lightbox) {
  var myLightbox = new Lightbox() // not sure whether this is a constructor (non-static) or not
  myLightbox.show('hello')
})

정적 모듈이 ‘the’를 사용하여 자신의 존재를 나타내는 규칙을 시도하는 것에 대해 생각하고 있습니다. 이보다 더 나은 방법을 본 사람이 있습니까? 다음과 같이 보일 것입니다 :

define(['theLightbox'],function(theLightbox) {
  theLightbox.show('hello') // since I recognize the 'the' convention, I know it's static
})


답변

나는 몇 가지 구문 제한 외에도 명명 규칙 추론은 언어와 무관합니다. 내 말은, c_style_functions와 JavaLikeCamelCase에 찬성하는 주장은 반대 방식으로 동일하게 사용될 수 있습니다. 언어 사용자가 언어 작성자를 따르는 경향이 있습니다.

나는 대부분의 라이브러리가 대략 Java CamelCase의 단순화를 따르는 경향이 있다고 생각합니다. 나는 Douglas Crockford의 조언이 충분히 맛있다는 것을 알았 습니다.


답변

그것은 당신이 일하는 방식에 따라 달라질 수있는 개인적인 질문입니다. 어떤 사람들은 “str_message”와 같이 변수의 시작 부분에 변수 유형을 넣기를 좋아합니다. 그리고 어떤 사람들은 단어 사이에 밑줄 ( “my_message”)을 사용하고 다른 사람들은 대문자 ( “myMessage”)로 구분하기를 원합니다.

나는 종종 다른 사람들과 함께 거대한 JavaScript 라이브러리를 사용하고 있으므로 함수와 변수 (함수 내부의 개인 변수 제외)는 “guestbook_message”와 같이 충돌을 피하기 위해 서비스 이름으로 시작해야합니다.

간단히 말해서, 영어, 소문자, 잘 구성된 변수 및 함수 이름이 나에게 바람직합니다. 이름은 짧지 않고 존재를 설명해야합니다.


답변