오늘 우리 프로그램을 개발하기 위해 자바스크립트를 올바르게 사용하는 방법에 대한 기사를 github에서 찾았습니다. 뻔뻔하게도 독창적인 기사를 생각해 냈습니다. 모두에게 공유해 보겠습니다.
Javascript에 대한 가장 합리적인 접근 방식입니다.
유형 //유형
객체 //객체
배열 //배열
문자열 //문자열
함수 //함수
속성 //속성
변수 //변수
호이스팅 //가변 호이스팅
조건식 및 등식 //조건식 및 방정식.
블록 //블록 코드
댓글 //댓글
공백 //공백
쉼표 //쉼표
세미콜론 //세미콜론
타입 캐스팅 & 강제 //타입 변환
명명 규칙 // 명명 규칙
접속자 //접속
생성자 //생성자
이벤트 //시간
모듈 //모델
jQuery //
ECMAScript 5 호환성 //ECMA 5 호환
테스트 //테스트
퍼포먼스 //퍼포먼스
리소스 //리소스
야생에서
번역
JavaScript 스타일 가이드 가이드
기여자
라이센스
종류
기본 유형: 기본 유형에 액세스하면 실제로 기본 유형의 콘텐츠에 직접 액세스됩니다.
문자열
번호
부울
널
정의되지 않음
var foo = 1,
바 = foo;
바 = 9;
console.log(foo,bar); //=>
객체
배열
기능
var foo = [1,2]; bar = foo; bar[0] = 9; console.log(foo[0],bar[0]); // => 9,9
객체(객체)
객체 리터럴을 사용하여 객체 생성(리터럴)
//bad var item = new Object(); //good var item = {};
//bad var superman = { default: {clark: 'kent'}, private: true }; //good var superman = { defaults: {clark: 'kent'}, hidden: true };
배열(배열)
또한 리터럴 메소드를 사용하여 배열을 생성합니다
//bad var items = new Array(); //good var items = [];
var someStack = []; //bad someStack[someStack.length] = 'vein'; //good someStack.push('vein');
var len = items.length, //指的就是上面的内容... itemCopy = [], i; //bad for(i = 0; i < len ; ++i){ itemCopy[i] = items[i]; } //good itemCopy = items.slice(); //这里要注意了.这个我还真不知道...
문자열 문자열
문자열을 작은따옴표로 묶으세요...//여기서 성능에 대한 적절한 설명을 찾지 못했습니다. 저는 개인적으로 이렇게 사용하는 것을 좋아합니다. (많이 입는 것보다 덜 입는 것이 낫죠? ..you 알아요..)
//bad var name = "Bob Parr"; //good var name = 'Bob Parr'; //bad var fullName = "Bob " + this.lastName; //good var fullName = 'Bob ' + this.lastName;
// bad var errorMessage = 'This is a super long error that was thrown because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.'; // bad var errorMessage = 'This is a super long error that was thrown because \ of Batman. When you stop to think about how Batman had anything to do \ with this, you would get nowhere \ fast.'; // good var errorMessage = 'This is a super long error that was thrown because ' + 'of Batman. When you stop to think about how Batman had anything to do ' + 'with this, you would get nowhere fast.';
var items, messages, length, i; messages = [{ stat: 'success', message: ' This one worked' },{ stat: 'success', message: ' This one worked' },{ stat: 'success', message: ' This one worked' } ]; length = messages.length; //bad function inbox(messages){ items = '<ul>'; for (i = 0; i < length; i++) { items += '<li>' + messages[i].message + '</li>'; } return items + '</ul>'; } //good function inbox(messages){ items = []; for( i = 0; i < length ; i++){ items[i] = messages[i].message; } return '<ul><li>' + items.join('</li><li>') + '</li></ul>'; }
//匿名函数表达式.. var anonymous = function(){ return true; }; // 命名函数表达式. var named = function named(){ return true; }; //即时引用函数 (function(){ console.log('Welcome to the Internet. Please follow me.'); })();
//bad if(currentUser){ function test(){ console.log('Nope.'); } } //good var test; if(currentUser){ test = function(){ console.log('Yup'); }; //be careful with the semi-colon. }
속성에 액세스하려면 점 구문을 사용하세요.
var luke = { jedi: true, age: 28 }; //bad var isJedi = luke['jedi']; //good var isJedi = luck.jedi;
에 액세스하세요.
var luke = { jedi: true, age: 28 }; function getProp(prop) { return luke[prop]; } var isJedi = getProp('jedi');