오늘 저는 Github에서 프로그램 개발에 JavaScript를 올바르게 사용하는 방법에 대한 질문을 찾았습니다. 나는 원본을 뻔뻔스럽게 생각해 냈습니다 ... 사기입니다. 당신과 공유합시다.
JavaScript에 대한 대부분 합리적인 접근 방식.
유형 // 유형
객체 // 객체
배열 // 배열
문자열 // 문자열
함수 // 함수
속성 // 속성
변수 // 변수
호이 스팅 // 가변 개선
조건부 표현 및 평등 // 조건부 표현 및 평등.
블록 // 블록 코드
댓글 // 댓글
공백 // 공간
쉼표 // 쉼표
세미콜론 // 세미콜론
타이핑 캐스팅 및 강요 // 변환을 입력하십시오
이름 지정 규칙 // 이름 지정 규칙
액세서 // 액세스
생성자 // 생성자
이벤트 // 시간
모듈 // 모델
jQuery //
ECMAScript 5 호환성 // ECMA 5 호환성
테스트 // 테스트
성능 // 성능
리소스 // 리소스
야생에서
번역
JavaScript 스타일 가이드 가이드
기고자
특허
유형 (유형)
원시 유형 : 원시 유형에 액세스 할 때 실제로 원시 유형의 내용에 직접 액세스합니다.
끈
숫자
부울
널
한정되지 않은
var foo = 1,
bar = foo;
바 = 9;
Console.log (foo, bar); // => 1,9
복잡한 유형 : 복잡한 유형 데이터 유형에 액세스하면 실제로 참조를 통해 변수 값에 액세스합니다.
물체
정렬
기능
var foo = [1,2]; bar = foo; bar [0] = 9; console.log (foo [0], bar [0]); // => 9,9
객체 (객체)
객체 리터럴을 사용하여 개체 (문자)를 만듭니다.
// badvar item = new Object (); // goodvar item = {};예약 된 키워드를 객체의 속성 이름으로 사용하지 마십시오. 이것은 IE8에 따라 작동하지 않습니다.
// badvar superman = {기본값 : {clark : 'kent'}, private : true}; // goodvar superman = {기본값 : {clark : 'kent'}, hidden : true};배열 (배열)
또한 문자 그대로의 방법을 사용하여 배열을 만듭니다
// badvar 항목 = new Array (); // goodvar items = [];
배열의 길이를 모르는 경우 배열의 내장 메소드를 사용하여 삽입 작업을 위해 푸시하십시오.
var somestack = []; // badsomestack [somestack.length] = '정맥'; // goodsomestack.push ( 'Vein');
배열을 복사하려면 Array.Slice를 사용하십시오
var len = items.length, // 위의 내용을 참조합니다 ... itemcopy = [], i; // badfor (i = 0; i <len; ++ i) {itemcopy [i] = 항목 [i];} // gooditemcopy = items.slice (); // 여기에주의를 기울여야합니다. 나는 정말로 이것을 모른다 ...문자열 문자열
문자열을 동봉하기 위해 단일 따옴표를 사용하십시오 ... // 여기서 공연에 적합한 설명을 찾지 못했습니다. 개인적으로 이렇게 사용하는 것을 좋아합니다.
// badvar name = "bob parr"; // goodvar name = 'bob parr'; // badvar fullname = "bob" + this.lastname; // goodvar fullname = 'bob' + this.lastname;
문자열이 80 자 미만인 경우 문자열 연결을 사용하여 여러 줄에 써야합니다. 과도하게 사용하면 문자열의 연결이 성능에 영향을 미칩니다.
// badvar errormessage = '배트맨으로 인해 발생한 매우 긴 오류입니다. 배트맨이 어떻게 이것과 관련이 있는지 생각하지 않으면 아무데도 빨리 가지 않을 것입니다. '; // badvar errormessage ='이것은 배트맨이기 때문에 던져진 매우 긴 오류입니다. 배트맨이 어떻게해야 할 일이 있었는지 생각하기를 멈출 때, 당신은 아무데도 /fast.' ;/ goodvar errormessage = '이것은 배트맨의' +'이기 때문에 던져진 매우 긴 오류입니다. 배트맨이 어떻게 ' +'해야 할 일이 있었는지 생각하기를 멈출 때, 당신은 아무데도 빨리 얻을 수 없습니다. ';
다음과 같이 계획된 방식으로 배열을 만드는 경우. Array.join을 사용하면 더 잘 작동합니다 ..
var 항목, 메시지, 길이, i; 메시지 = [{stat : 'success', message : '이 일이 작동했다'}, {stat : 'success', message : 'this one}, {stat :'success ','this one gream : 'this one gream :'this one}]; longs.length; // badfunction inbox (메시지) {항목 = '{ul>'; '<li>' + 메시지 [i] .message + '</li>';} repint repint + '</ul>';} // goodfunction inbox (메시지) {items = []; for (i = 0; i <길이; i ++) {항목 [i] = 메시지 [i] .message;} return '<ul> <li>' + 항목. '</li> </ul>';}기능
// 익명 함수 expression ..var 익명 = function () {return true;}; name function expression.var named = named named () {return true;}; // instant reference function (function () {console.log ( '오신 것을 환영합니다.');}) ();비 기능 블록 코드에서 함수를 정의하지 마십시오 (경우). 이에 따라 함수는 코드 블록 중간의 외부 변수 이름에 할당됩니다.
// badif (currentUser) {function test () {console.log ( 'nope.');}} // goodvar test; if (currentUser) {test = function () {console.log ( 'yup'); }; // 세미콜론에주의하십시오.}속성 (속성)
DOT 구문을 사용하여 속성에 액세스하십시오.
var luke = {jedi : true, age : 28}; // badvar isjedi = luke [ 'jedi']; // goodvar isjedi = lucky.jedi;변수를 사용하여 객체 속성에 액세스 할 때 [] 사각형 브래킷을 사용하여 액세스하십시오.
var luke = {jedi : true, age : 28}; 함수 getProp (prop) {return luke [prop];} var isjedi = getProp ( 'jedi');