모든 JavaScript 프로그래머가 알아야 할 것은 무엇입니까?
모든 JavaScript 프로그래머가 "나는 JavaScript를 안다"고 말할 수 있도록 하기 위해 알아야 할 것이 있는가?
jQuery가 아닙니다.YUI 말고.없음(등)
프레임워크는 유용할 수 있지만 JavaScript와 DOM이 실제로 어떻게 동작하는지에 대한 추악한 세부사항을 숨기고 있는 경우가 많습니다."나는 JavaScript를 안다"고 말하는 것이 목표라면 프레임워크에 많은 시간을 투자하는 것은 반대입니다.
다음은 JavaScript 언어 기능 몇 가지입니다.이 기능은, 동작하고 있는 것을 파악해, 잡히지 않게 하기 위해서 필요합니다만, 많은 유저에게 있어서 곧바로 눈에 띄지는 않습니다.
★★★
object.prop★★★★★★★★★★★★★★★★★」object['prop'])eval오브젝트 속성은 항상 문자열입니다(어레이의 경우에도 마찬가지입니다), ...의 용도는 무엇인지(in및 그것이 아닌 것).스니핑,뭐?
undefined(그리고 왜 냄새가 나는가)입니다.왜 거의 알려지지 않은 것처럼 보이는in하며 연연는르르르르르르르르 from from from from from from와는typeof/undefined; ;hasOwnPropertydelete.는요?
Number플로트 하지 않는 .데이터형 :플로트형 회피;플로트형 회피;플로트형parseInt옥탈 트랩함수 "" " " " " " " " " " " 를 .
var우발적인 글로벌을 피하고 싶은 범위, 폐쇄에 스코프를 사용할 수 있는 방법, 폐쇄 루프 문제.와 '''의
window충돌,, IE를var이 문제를 피하기 위해 글로벌 범위에서도요.요?
function스테이트먼트는 코드 앞에 있는 정의, 함수문과 함수식의 차이, 명명된 함수식을 사용하지 않는 이유 등을 '수정'하는 역할을 합니다.의 기능 , 「 」
prototype및 「」new연산자가 실제로 작동합니다. 이 방법을 활용하여 실제로 원하는 일반 클래스/하위 클래스/하위 클래스/하위 클래스 시스템을 만드는 방법, 프로토타이핑 대신 폐쇄 기반 개체를 사용할 수 있습니다.(대부분의 JS 튜토리얼 자료는 완전히 엉망입니다.이것을 머릿속에 확실히 넣는 데 몇년이 걸렸습니다.)?
this제한되지 않고 호출 시간에 결정됩니다.그 결과 메서드 수정이 다른 언어에서 예상한 대로 작동하지 않습니다.폐쇄 또는 폐쇄가 어떻게 이루어집니까?Function#bind그걸 피해갈 수 있을 것 같아요에는 ECMAScript 제5판 등의 기능이 .
indexOf,forEach및 의 기능 프로그래밍 방법, 오래된 브라우저를 사용할 수 있도록 수정하는 방법, 인라인 어나니머스 함수식과 함께 사용하여 콤팩트하고 읽기 쉬운 코드를 얻을 수 있습니다.코드 , 및 내에서 를 들어 vs 되었을 때 및 , like 를 . 제어가 반환될 때 발생하는 이벤트 및 타임아웃, 동기화된 빌트인 호출 방법
alert결과적으로 잠재적으로 비균형적인 재복구를 야기할 수 있습니다.이 " "에 미치는 영향"
instanceof이 다른 영향; ;;; " " " " " " " ; ;른른른른른 across across across across across across across across across across across across across 、 " across across across across across across ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 、 " 、 " ; ;"postMessage이 문제를 해결할 수 있기를 바랍니다.
마지막 두 항목에 대한 이 답변을 참조하십시오.
무엇보다도 JavaScript를 비판적으로 보고 역사적 이유로 불완전한 언어(대부분의 언어보다 더 많은 언어)임을 인정하고 최악의 트러블 슈팅을 피해야 합니다.크록포드의 이 분야에서의 작업은 확실히 읽을 가치가 있다(그러나 나는 "좋은 부분"이 무엇인지에 대해 그에게 100% 동의하지는 않는다).
비활성화할 수 있습니다.
Crockford의 Javascript에 기재된 내용을 이해한다. Good Parts는 사람이 괜찮은 JS 프로그래머라는 꽤 좋은 가정입니다.
JQuery와 같은 좋은 라이브러리를 사용하는 방법을 알 수 있지만 Javascript의 숨겨진 부분은 알 수 없습니다.
또 다른 주의사항은 다양한 브라우저의 디버깅 도구입니다.JS 프로그래머는 다른 브라우저에서 코드를 디버깅하는 방법을 알고 있어야 합니다.
아! 그리고 JSLint를 알면 기분이 상해요!!
진정한 JavaScript 닌자가 되고 싶다면 완벽을 기하는 JavaScript 퀴즈의 모든 질문에 대한 답을 알아야 합니다.
식욕을 돋우는 예:
(function f(f){
return typeof f();
})(function(){ return 1; });
이 표현은 무엇을 반환합니까?
- "숫자"
- "실패"
- "기능'
- 에러
JavaScript를 모르는 경우:
- 폐쇄
- 프로토타입 기반 상속
- 모듈 패턴
- W3C-DOM
- 이벤트 구조
javascript는 java가 아닙니다:)
웹 사이트 개발을 시작하는 많은 분들이 javascript는 단순한 java라고 말씀하셨습니다!
하나 이상의 Javascript 라이브러리(Jquery, 프로토타입 등)를 숙지하십시오.
주요 브라우저(MSIE 7-8, Firefox, Chrome, Safari)의 디버깅 도구 사용 방법에 대해 설명합니다.
업계에 대해 자세히 알아보기:Douglas Crockford의 웹사이트는 보물창고이며, Ajaxian.com는 Javascript에 대한 새롭고 흥미롭고 기묘한 아이디어에 대한 정보를 얻기에 좋은 블로그이다.그 밖에도 여러 가지 자원이 있지만, 그것이 가장 큰 도움이 되었습니다.
Javascript 객체와 기능은 이벤트와 JQuery를 잊지 않고 퍼스트 클래스 시티즌 콜백으로 기능합니다.
그 Javascript는 한 시간에 배울 수 있는 것이 아니야!
로컬로 선언되지 않는 한 변수는 글로벌합니다!!
불량(DoSomething()은 10회만 호출):
function CountToTen()
{
for(i=0; i< 10; i++)
{
DoSomething(i);
}
}
function countToFive()
{
for(i=0; i<5; i++)
{
CountToTen();
}
}
CountToFive();
Good (DoSomething()은 의도한 대로 50회 호출됩니다.
function CountToTen()
{
var i;
for(i=0; i< 10; i++)
{
DoSomething(i);
}
}
function countToFive()
{
var i;
for(i=0; i<5; i++)
{
CountToTen();
}
}
CountToFive();
좋은 부분은 어떻게 사용하는지, 나쁜 부분은 어떻게 피하는지.
Javascript가 원래 LiveScript로 불리고 'Java' 접두사가 마케팅 목적으로 첨부되었다는 것을 알기 위해서가 아니라 자바와 Javascript가 관련이 있기 때문입니다.
데이비드 플래너건의 '자바스크립트'를 소유해준 것도요 최종 가이드' (이 정보는 2페이지에 있습니다.
그리고 Internet Explorer 4의 문서를 난독화하려고 했던 이전에도 감사했습니다.Jquery와 같은 사람들이 고통을 없애기 전에 Netscape Navigator 4의 document.layers[]의 모든 것.
편집:
@Kinopiko가 지적했듯이 자바스크립트는 원래 프로젝트 Mocha(일부 출처에서는 프로젝트 LiveWire라고 생각하기도 한다)라고 하지만 일반적으로 이 언어(브렌던 아이히 작자)는 1996년 초에 자바 프리픽스가 채택되기 전에 라이브스크립트로 출시될 예정이었다는 것이 일반적이다.
"I Know JavaScript"라고 말하려면 다음 사항에 유의해야 합니다.
- JavaScript는 좋지만 DOM이 과제입니다.
- 크로스 브라우저 문제로 인해 미쳐버릴 수 있다
- 적어도 4개의 다른 정상적인 브라우저에서 코드가 테스트되지 않는 한 버그 프리라고 말할 수 없습니다.
- 닫힘..............꼭 알아야 한다
- 프로토타입 기반 ............좋아, 이걸 배우는 건 재밌어
- 디버거 키워드 .....위기 시 지원
그 JavaScript는 당신이 생각하는 것보다 훨씬 다른 언어입니다.이 훌륭한 Google Tech Talk를 보고 인상을 받으십시오.http://www.youtube.com/watch?v=hQVTIJBZook
자바스크립트 코더가 알아야 할 것은?
두 번의 클릭으로 당신의 노력을 끌 수 있는 건 어때요?따라서 가능하면 예비품을 제공하십시오.
Javascript를 읽을 것을 강력히 권장합니다. 좋은 부분
배열, 숫자, 문자열, 날짜 및 개체를 효과적으로 사용할 수 있다면 javascript를 알 수 있습니다.산술 및 RegExp에 대한 플러스 포인트.함수를 작성하고 변수를 사용할 수 있어야 합니다(올바른 범위, 즉 개체의 '메서드'로 사용).
폐점, 호화로운 기능 구문, 잡담에 대한 코멘트가 몇 개 있네요.그 모든 것은 이 질문과는 전혀 관련이 없다.100m 달리기를 11초 안에 할 수 있다면 그것은 당신이 달리기 선수라고 말하는 것과 같다.
Javascript에 익숙해지려면 몇 주 정도 걸릴 것 같습니다.그 후 전문가나 닌자 등이 되기 위해서는 수 년, 수십 권의 책과 수천 줄의 프로그래밍이 필요합니다.
하지만 그건 질문이 아니었어요.
그리고 DOM은 Javascript의 일부도 아니고 jQuery도 아닙니다.그래서 나는 둘 다 똑같이 그 질문과는 무관하다고 생각한다.
JSLint http://www.JSLint.com/
위의 내용을 모두 읽었으므로 jQuery와 같은 프레임워크를 사용하여 Javascript를 익히는 것도 문제 없습니다.사실 많은 사람들이 JS를 애초에 선택한 첫 번째 방법입니다.부끄러워하지 마세요.
어레이를 설정합니다.length 가장 입니다.이 이 "로 에도 마찬가지입니다.undefined
var a = [];
a.length; // === 0
a[10]; // === undefined
a[10] = undefined;
a.length; // === 11
a.pop(); // === undefined
a.length; // === 10
이 동작은 언어 디자인 버그와 거의 구별되지 않습니다.
jQuery를 추천합니다.코드 자체뿐만 아니라 관용어, 스타일, 사고방식도 모방할 가치가 있습니다.
이 Javascript는 세계에서 가장 널리 사용되고 있는 언어입니다.(아마도)
언어를 정말 잘 배우고 그 기이한 점들을 이해하는 것은 다년간의 경험에서 비롯된다.더 나은 프로그래머가 되고 싶다면 설계 패턴, 사용 방법, 사용 시기, 또는 그것을 깨닫지 못하고 사용하는 경우에도 기술 아키텍처와 사용자 경험을 이해해야 합니다.
(JavaScript) 언어를 알고 있으면 임의의 프레임워크를 선택하여 자유롭게 사용할 수 있습니다.소스 코드를 자세히 살펴봐야 합니다.또한 프레임워크나 2 또는 3의 구문밖에 모르면 멀리 가지 않습니다.즉, 몇 가지 다른 프레임워크의 소스 코드를 살펴보는 것이 JavaScript를 어떻게 사용할 수 있는지 확인하는 가장 좋은 방법 중 하나일 것입니다.Firebug 또는 Web Inspector의 코드를 단계별로 살펴본 다음 JavaScript 문서, 특히 Mozilla 및 Webkit 문서를 확인하여 보고 있는 내용을 더 잘 이해할 수 있습니다.
오브젝트 지향 프로그래밍과 기능 프로그래밍의 차이점을 이해하면 JavaScript는 두 가지 요소를 적절히 조합하여 킬러 코드베이스와 멋진 애플리케이션을 만드는 데 사용할 수 있습니다.
단순히 몇몇 책을 읽는 것, 특히 JavaScript의 좋은 점에 대한 그의 의견을 제시하는 Crockford의 "좋은 부분"을 읽는 것은 당신을 기분 나쁘게 할 것이다.
한편 Thomas Fuchs와 같은 사람이 작성한 코드를 확인하면 놀랍고 효율적인 JavaScript를 작성하는 능력에 대해 더 많은 통찰력을 얻을 수 있습니다.
몇 가지 gotcha나 WTF를 외우는 것도 도움이 되지 않습니다.라이브러리/프레임워크의 코드, 특히 도움이 되는 코멘트를 사용하여 왜 특정 속성/값을 사용했는지, 그 이유와 특정 오퍼랜드 및 연산자를 사용하는 것이 좋은지를 확인하려고 하면 이 모든 것을 알 수 있습니다.그 프레임워크의 사람들이 사용하는 코드에 포함되어 있습니다.모범을 보이는 것보다 얼마나 더 좋은가?:^)
Javascript에서는 퍼포먼스가 중요합니다.
코드를 최적화하는 인텔리전트 컴파일러가 없기 때문에 자바스크립트 코드를 작성할 때는 C#, Java 등의 언어보다 더 주의해야 합니다.
오브젝트 리터럴이 너무 쓰기 좋기 때문에
다음 사항도 중요합니다.
1) 가변 호이스트 2) Scope Chain 및 활성화 객체
그런 다음 다음과 같은 작업을 실시합니다. : )
3) wtfjs.com
4) 모든 것이 오브젝트입니다.http://www.lifeinafolder.com/images/Js.jpg
- 것과 것의 삶이 있다는 것을 아는 것
with()★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ - 는 커스텀 수 .
throwjavascript runtime 。
JS는 기능적 언어이기 때문에, 괜찮은 JS 프로그래머는 Y-combinator를 쓸 수 있어야 하며, 그것이 어떻게 작동하는지를 즉시 설명할 수 있어야 한다.
Google Web Toolkit에 대해 말하자면, Javascript 프로젝트를 훨씬 더 편리하게 개발할 수 있을 것입니다.
언급URL : https://stackoverflow.com/questions/2628672/what-should-every-javascript-programmer-know
'programing' 카테고리의 다른 글
| 'System' 유형의 COM 개체를 캐스팅할 수 없습니다.__ComObject'에서 인터페이스 유형으로 (0) | 2022.10.27 |
|---|---|
| MariaDb 마스터 슬레이브(페일오버 포함) (0) | 2022.10.27 |
| Composer의 개발/실가동 스위치를 사용할 때 올바르게 전개하는 방법 (0) | 2022.10.18 |
| C auto 키워드는 어디에서 사용됩니까? (0) | 2022.10.18 |
| 로케이션 해시의 변경을 검출하려면 어떻게 해야 합니까? (0) | 2022.10.18 |