JavaScript는 인터넷에서 평판이 좋지 않지만, 우리의 삶에 뿌리를 둔 너무 역동적이고 널리 사용되는 것처럼 다른 언어를 찾기가 어렵습니다. 낮은 학습 임계 값으로 인해 많은 사람들이 유치원 스크립팅 언어라고 부릅니다. 사람들을 웃게 만드는 또 다른 것은 높은 표준의 정적 데이터 유형을 사용하는 동적 언어의 개념입니다. 실제로, 당신과 JavaScript는 모두 잘못된 입장을 취했으며 이제 JavaScript를 매우 화나게합니다. JavaScript 기술이 끔찍한 5 가지 이유는 다음과 같습니다.
1. 네임 스페이스를 사용하지 않습니다.
대학 교사에서 숙제에서 글로벌 변수를 사용하지 말라고 말한 것을 아직도 기억하십니까? JavaScript에서 글로벌 변수의 사용도 예외는 아닙니다. 조심하지 않으면 혼란스러워지고 인터넷 구석 구석에서 발견되는 지저분한 스크립트와 스크립트 라이브러리가 있습니다. 가변 로더 ()의 이름을 지정하면 고의적으로 문제가 발생합니다. 무의식적으로 함수를 과부하 시키면 JavaScript가 전혀 상기시키지 않습니다. 또한 유치원 프로그래밍 언어라고 부릅니다. 기억하십니까? 내가 말할 것은이 작업을 수행 한 후에 무슨 일이 일어나는지 알아야한다는 것입니다.
코드 사본은 다음과 같습니다.
함수 derp () {alert ( "one"); }
함수 derp () {alert ( "two"); }
derp ();
"2", 대답은 "2"입니다. 반드시 그런 것은 아니며 "하나"일 수 있습니다. 따라서 모든 코드를 자신의 네임 스페이스에 쉽게 넣을 수 있습니다. 다음은 자신의 네임 스페이스를 정의하는 간단한 방법입니다.
코드 사본은 다음과 같습니다.
var foospace = {};
foospace.derp = function () {alert ( "one"); }
함수 derp () {alert ( "two"); }
foospace.derp ();
2. 당신은 속임수를 만들고 있습니다. 변수를 하나씩 정의합니다.
변수 이름으로 설명 할 수없는 숫자 조합을 사용하는 것은 잃어버린 결말입니다. 40 라인 코드 블록에서 의미가없는 문자 변수를 찾는 것은 유지 보수의 악몽입니다. 변수의 첫 번째 선언을 40 라인 코드 블록에 혼합하는 것도 악몽입니다. 그러한 변수를 직접 만나더라도 "이것은 어디에 정의되어 있습니까?"라고 스스로에게 도움을 줄 수는 없습니다. 그런 다음 Ctrl+F 조합을 빠르게 사용하여 소스 코드 에서이 변수의 초기 정의를 찾으십시오. 아니요, 이렇게하지 마십시오. 반대로, 그것은 자바 스크립트의 남용과 어리석은 접근법입니다. 사용 범위의 상단에서 항상 변수를 정의해야합니다. 이것이 필요하지 않기 때문에 그렇게 할 수 없다고 말할 수는 없습니다.
코드 사본은 다음과 같습니다.
기능(){
var a, // 설명
비; //설명
//프로세스…
}
3. JavaScript의 변수 범위를 이해하지 못합니다.
당신은 천재 프로그래머이고 C ++와 풀리스트를 먹습니다. 당신은 변수의 범위가 무엇인지 알고 있으며 변수를 완전히 제어 할 수 있으며 최고의 황제처럼보고 있습니다. 그러나 JavaScript는 커피에 똥을 뽑고 끝없이 웃습니다.
코드 사본은 다음과 같습니다.
var herp =”one”;
{
var herp =”2”;
}
경고 (HERP);
이 경우 HERP를 얻는 것은 "하나"가 아니라 "2"입니다. JavaScript의 변수 유효 범위는 다른 언어와 같은 코드 블록에 의존하지 않습니다. JavaScript 변수 범위는 함수를 기반으로합니다. 각 함수에는 고유 한 변수 범위가 있으며 JavaScript는 이런 방식으로 시원하며 무의미한 버팀대로 감싸는 범위를 무시합니다. 실제로 JavaScript는 너무 멋져서 네임 스페이스 나 변수와 같은 가변 범위를 통과 할 수 있습니다.
4. 당신은 JavaScript의 객체 지향적 특징이 그라프 팅되었다고 생각합니다.
JavaScript는 처음부터 객체 지향 언어였습니다. 모든 것이 JavaScript의 객체입니다! 숫자 및 문자와 같은 문자 그대로의 기호조차도 고유 한 생성자를 통해 객체로 변환 될 수 있습니다. 다른 객체 지향 언어와 비교할 때 JavaScript는 클래스가 없다는 점에서 다릅니다. JavaScript 객체는 함수처럼 정의되며 함수 자체는 객체입니다. JavaScript에는 프로토 타입이라는 속성이 있습니다. 이 속성은 모든 객체에 내장되어 있습니다. 객체의 구성을 변경하고 객체를 수정하고 더 많은 변수 및 더 많은 기능을 추가 할 수 있습니다.
코드 사본은 다음과 같습니다.
var derp; // HERP 인스턴스를 보유합니다
var herp = function () {
this.opinion = "JavaScript는 기본보다 시원합니다.";
}
herp.prototype.speak = function () {alert (this.opinion); }
var derp = new herp ();
derp.speak ();
이것이 당신과 아무 관련이 없다면, 나는 좋은 친구 Google을 당신에게 소개하고 싶습니다. 이는 사람들이 지식을 배우도록 돕는 데 능숙합니다. 객체 지향은 짧고 낮은 자세 기사의 큰 주제입니다.
5. "새로운"키워드를 사용하면 맹인과 맹인 말과 같습니다.
JavaScript는 당신이 잃어버린 것처럼 보이기 때문에 첫 사랑 여자 친구 여야합니다. 실제 사람처럼 JavaScript를 기쁘게하려면 객체 기호를 이해해야합니다. 객체를 인스턴스화 해야하는 경우를 제외하고는 또는 데이터가 지연된 방식으로로드되는 드문 경우를 제외하고는 기본적으로 새 키워드를 사용할 필요가 없습니다. JavaScript에서 많은 수의 새로운 변수 주소를 할당하는 것은 매우 느리게 작동하며 효율적인 이유로 항상 객체 기호를 사용해야합니다.
코드 사본은 다음과 같습니다.
var 오른쪽 = [1, 2, 3];
var frongway = 새로운 배열 (1, 2, 3);
JavaScript의 변수 범위가 함수를 기반으로한다고 말한 것을 기억하십니까? JavaScript 객체가 함수처럼 정의된다고 말하는 사람을 기억하십니까? 새 키워드를 사용하여 객체를 선언하지 않으면이 객체를 전역 범위로 만듭니다. 따라서 항상 새로운 키워드를 사용하여 개체를 선언하는 것이 좋습니다.
코드 사본은 다음과 같습니다.
var derp =”one”;
var herp = function () {
this.derp =”2”;
}
var foo = herp ();
경고 (derp);
당신이 이런 식으로 쓰면, JavaScript는 신경 쓰지 않을 것이며, 당신이 실제로 팝업하는 대답은 "2"입니다! 객체가 그러한 동작을 수행하는 것을 방지하는 방법에는 여러 가지가 있습니다.이 동작은 인스턴스를 사용하는 데 사용할 수 있지만 더 좋은 방법은 새로운 키워드를 올바르게 사용하여보다 전문적으로 만듭니다.
이제 JavaScript 코드가 끔찍하다는 것을 알고 있으며, 위에서 언급 한 내용을 기억하면 코드가 향상됩니다. 나는 3 개의 탭 키를 사용하여 코드를 들여 쓰기를 좋아합니다. 밑줄을 사용하여 단어를 연결하고 싶습니다. 기능의 초기 문자를 대문자로하여 객체임을 나타냅니다. 물론 이것은 또 다른 토론입니다. 많은 기술이있는 것처럼 JavaScript 코드가 나쁜 이유는 여러 가지가 있습니다. 그래서 귀하의 의견, 지원, 이의 제기를 표현하고 의견에 대한 조언을 줄 수 있습니다.
포인트 5의 오류를 지적 해 준 Rogeliorv와 Jared Wein에게 감사드립니다. 당신은 매우 강합니다.