1. 이름 지정 1. 변수와 함수에 의미 있는 이름을 지정하고 임의로 이름을 지정하지 마세요.
2. 비생성자 함수는 카멜 표기법을 사용하고 동사-객체 구조를 사용하여 getName 또는 IsFull과 같은 변수 이름과 구별하려고 합니다. 생성자(즉, 사용자 정의 유형) 이름의 첫 글자는 Person과 같은 생성자가 아닌 함수와 구별하기 위해 대문자로 표시됩니다.
3. 변수는 카멜 케이스 명명을 사용합니다. JavaScript는 약한 유형의 언어이므로 변수 이름 앞에 정수(i), 부동 소수점 수(f), 부울(b), 문자열(s), 배열(a)을 붙이는 것이 좋습니다. 단, 반드시 해야 하는 것은 아니며, 개인의 취향에 따라 선택하실 수 있으며, 일단 선택하신 후에는 접두어를 추가하는 방법과 접두어를 추가하지 않는 방법을 혼용하지 마세요.
2. 레이아웃 1.
a) var와 변수 이름 사이, 변수 이름과 등호 사이, 등호와 초기값 사이에 공백을 두고, 초기값과 세미콜론 사이에는 공백을 두지 마세요. 예: var i = 10;
b) 리터럴을 사용하여 참조 유형 변수를 선언하는 경우 각 속성과 콜론 사이에 공백을 두지 말고 콜론과 초기 값 사이에 공백을 두십시오. 예:
var Person = {
age: 16 ,
name: "Sam"
};
c) 함수와 함수 이름 사이에는 공백을 두고, 함수 이름과 (), () 및 사이에는 공백을 두지 마십시오. { 사이에 공백을 두십시오.
d) 함수의 각 매개변수 사이에 공백을 두세요.
e) 키워드를 강조하려면 if, while, for 및 왼쪽 대괄호 사이에 공백을 두십시오. switch, with 및 왼쪽 대괄호 사이에는 공백을 두지 마십시오.
f) 이항 연산자와 왼쪽 및 오른쪽 피연산자 사이에 공백을 두세요. 코드 줄이 길면 공백을 둘 수 없습니다.
2. 줄바꿈.
a) 각 문은 한 줄을 차지합니다. 한 줄에 여러 문을 사용하지 마세요.
b) if, while, for 등과 같은 블록 수준 범위 뒤의 중괄호 {는 새 줄에서 시작하지 않고 키워드와 같은 줄에 넣습니다.
3. 들여쓰기.
a) 들여쓰기에는 공백 4개를 사용하고 탭을 사용하지 않습니다.
b) 범위가 다른 경우 계층 관계를 표시하기 위해 들여쓰기를 해야 합니다.
3. 댓글 1. 댓글을 적절하게 추가합니다. 의견은 완전히 없을 수 없으며, 많을수록 좋습니다. 중요한 메서드, 변수, 알고리즘(또는 주의가 필요한 기타 문제)에 주석을 추가하기만 하면 됩니다.
2. 소스코드 수정 시 주석도 동시에 수정하여 일관성을 유지해야 합니다.
3. 코드에 HTML 주석을 사용하지 마세요.
4. 사양 1. 변수 선언 시 var 키워드를 추가해야 합니다. JavaScript에서는 var 키워드를 생략하여 전역 변수로 사용할 수 있지만 이것이 문제의 원인입니다.
2. 변수 선언 시 초기화와 동시에 이루어져야 하며, 나중에 변수의 데이터형을 변경하지 않는 것이 가장 좋습니다.
3. 문장 끝에 세미콜론을 추가할 수 있는 경우에는 반드시 추가해야 합니다.
4. while, for 등의 명령문이 하나만 있는 경우에도 중괄호 안에 넣어야 합니다.
5. 글로벌 변수를 임의로 사용하지 마세요. 부득이하게 사용해야 한다면 하나의 글로벌 변수만 사용하는 것이 가장 좋습니다.
6. JavaScript는 html 및 css와 느슨하게 결합되어야 합니다. HTML은 데이터 레이어, CSS는 프리젠테이션 레이어, JavaScript는 동작 레이어입니다. 이 세 가지 간의 긴밀한 결합은 피해야 합니다. 그렇지 않으면 나중에 유지 관리가 어려워집니다. html에는 특정 JavaScript 코드가 없어야 하며 모든 외부 파일은 JavaScript에 포함되어야 합니다. 많은 수의 html 요소를 삽입하려면 innerHTML을 사용하지 말고 처음에는 해당 요소를 숨기세요. JavaScript를 직접 사용하지 말고 CSS의 특정 속성을 수정하려면 className을 통해 간접적으로 수정해야 합니다.
7. 자신이 소유하지 않은 개체를 수정하지 말고 해당 인스턴스나 프로토타입에 속성이나 메서드를 추가하지 말고 기존 메서드를 반복적으로 정의하지 마세요. 그렇지 않으면 새 버전의 개체에 동일한 이름의 속성이나 메서드가 추가될 때 잠재적으로 미묘한 문제가 발생할 수 있습니다. 두 가지 해결책이 있습니다. 하나는 상속이고 다른 하나는 포함입니다.
8. 여러 라이브러리 간의 충돌을 방지하려면 네임스페이스를 사용하세요. YUI 라이브러리의 구성을 참조하세요.
9. 코드에 나타나는 리터럴의 경우 속성 이름의 첫 글자를 대문자로 사용하여 변수의 속성에 배치해야 합니다(다른 언어의 정의 또는 열거형 시뮬레이션). 예:
var Color = {
빨간색: 1 ,
파란색: 2,
녹색: 3
}
10. 함수에 전달된 매개변수를 확인하세요. 기본 유형인 경우 typeof를 사용하고, 참조 유형인 경우 objectof를 사용하고, 객체에 메소드가 포함되어 있는지 확인하려면 해당 메소드에 typeof 연산자를 사용하고 이를 "undefine" 문자열과 비교하세요.
5. 성능
1. 글로벌 검색을 피하세요. 전역 변수 및 함수를 사용하는 것은 지역 변수 및 함수를 사용하는 것보다 비용이 더 많이 듭니다. 전역 변수 및 함수에는 범위 체인 조회가 포함되기 때문입니다. 따라서 함수 내에서 전역 변수를 여러 번 사용하는 경우에는 여러 번 범위 체인 검색을 수행하여 이러한 문제를 방지하기 위해 여러 번 사용된 전역 변수를 지역 변수에 할당하고 해당 지역 변수를 사용하게 됩니다. 미래에.
2. 마녀 표현을 사용하지 마세요. with 문은 자체 범위를 생성하므로 추가 오버헤드가 발생합니다.
3. 속성 조회를 피하세요. 속성 조회는 O(n) 작업이며 객체에 대한 모든 속성 조회는 변수 및 배열에 액세스하는 것보다 시간이 더 걸립니다(변수 및 배열에 액세스하는 것은 O(1) 작업입니다). 따라서 동일한 속성을 여러 번 사용하는 경우에는 로컬 변수에 저장해야 합니다. 예:
var sUrl = window.location .href;
var sData = sUrl.substring(sUrl.indexOf("?"))