자 바스 크 립 트 기술 이 엉망 인 다섯 가지 이 유 를 설명해 주세요.

본문 은5 Reasons Your Javascript Stinks이 문장 을 번역 한 것 이다.
자 바스 크 립 트 는 인터넷 에서 평판 이 매우 나 쁘 지만,너 는 그것 처럼 이렇게 동태 적 이 고,이렇게 광범 위 하 게 사용 되 고,이렇게 우리 생활 에 뿌리 내 린 또 다른 언어 를 다시 찾기 가 매우 어렵다.낮은 학습 문턱 은 많은 사람들 로 하여 금 학습 전 스 크 립 트 언어 라 고 부 르 게 한다.또 다른 비 웃 는 것 은 동적 언어의 개념 은 하필 이면 높 은 표준 의 정적 데이터 형식 을 사용 한 것 이다.사실,당신 과 자 바스 크 립 트 는 모두 입장 을 잘못 섰 는데,지금 은 자 바스 크 립 트 를 매우 화 나 게 합 니 다.여기 에는 너의 자 바스 크 립 트 기술 이 매우 나쁘다 는 것 을 설명 할 수 있 는 다섯 가지 이유 가 있다.
1.네 임 스페이스 를 사용 하지 않 았 습 니 다.
대학 에서 선생님 께 서 숙제 에서 전역 변 수 를 사용 하지 말 라 고 말씀 하신 것 을 기억 하 십 니까?자 바스 크 립 트 의 전역 변수의 사용 방법 도 예외 가 아니다.웹 페이지 는 조금 만 조심 하지 않 으 면 혼 란 스 러 워 지고 인터넷 구석구석 에서 찾 아 온 지저분 한 상호 침범 스 크 립 트 와 스 크 립 트 라 이브 러 리 들이다.만약 당신 이 변 수 를 loader()라 고 명명 한다 면,당신 은 고의로 번 거 로 움 을 자초 한 것 입 니 다.만약 당신 이 무의식적으로 함 수 를 다시 불 러 왔 다 면,자 바스 크 립 트 는 전혀 당신 에 게 알려 주지 않 을 것 입 니 다.너 는 아직도 그것 을 취학 전 교육 프로 그래 밍 언어 라 고 부 르 는데,기억 나 지?내 가 말 하고 자 하 는 것 은,너 는 이런 일 을 한 후에 어떤 상황 이 발생 했 는 지 알 아야 한 다 는 것 이다
 
function derp(){ alert("one"); }
function derp(){ alert("two"); }
derp();
"two",답 은"two"입 니 다.꼭 그런 것 은 아니다.그것 도'원'일 수도 있다.그래서 당신 의 모든 코드 를 자신의 네 임 스페이스 에 두 는 것 은 매우 쉽 습 니 다.다음은 자신의 네 임 스페이스 를 정의 하 는 간단 한 방법 입 니 다
 
var foospace={};
foospace.derp=function(){ alert("one"); }
function derp(){ alert("two"); }
foospace.derp();
2.마술 을 하고 있 습 니 다.변 수 를 하나씩 정의 하 세 요.네가 알 수 없 는 숫자 알파벳 조합 을 변수 명 으로 사용 하 는 것 은 쌍 패 의 결말 이다.40 줄 의 코드 블록 에서 의 미 를 나타 내지 않 는 문자 변 수 를 찾 는 것 은 유지 보수 작업 에 있어 서 악몽 입 니 다.변수 에 대한 첫 번 째 성명 을 40 줄 코드 블록 에 섞 는 것 도 악몽 이다.설령 당신 이 이런 변 수 를 만 났 다 하 더 라 도,당신 은 자신 에 게"이것 은 어디에서 정 의 된 것 입 니까?"라 고 묻 지 않 는 다.그 다음 에 Ctrl+F 조합 을 사용 하여 소스 코드 에서 이 변수 가 최초 로 정 의 된 위 치 를 찾 습 니 다.아니,그 러 지 마 세 요.반대로 자바 script 에 대한 남용 이 고 어 리 석 은 방법 입 니 다.너 는 항상 변 수 를 사용 범위 의 맨 위 에 정의 해 야 한다.이것 이 꼭 필요 한 것 이 아니 기 때문에 너 는 이렇게 하지 않 아 도 된다 고 말 할 수 없다.function(){ var a,//description b; //description//process...}3.자 바스 크 립 트 의 변수 범 위 를 이해 하지 못 했 습 니 다.당신 은 천재 적 인 프로그래머 입 니 다.당신 은 C++를 먹고 List 를 당 겼 습 니 다.당신 은 변수 범위 가 무엇 인지 알 고 있 습 니 다.당신 은 당신 의 변 수 를 완전히 통제 하고 있 습 니 다.당신 은 마치 황제 처럼 그들 을 주시 하고 있 습 니 다.그러나 자 바스 크 립 트 는 커피 에 똥 을 싸 고 크게 웃 었 다
 
var herp="one";
{
var herp="two";
}
alert(herp);
이런 상황 에서 당신 이 얻 은 herp 는'one'이 아니 라'two'입 니 다.자바 script 의 변수 유효 범 위 는 다른 언어 와 마찬가지 로 코드 블록 에 의존 하 는 것 이 아 닙 니 다.자바 script 의 변수 범 위 는 함 수 를 바탕 으로 합 니 다.모든 함 수 는 자신의 변수 범 위 를 가지 고 있 습 니 다.자 바스 크 립 트 라 는 점 에서 멋 있 게 표현 되 었 습 니 다.의미 없 는 꽃 괄호 로 싸 인 범 위 를 거들 떠 보지 도 않 습 니 다.사실 자 바스 크 립 트 는 너무 멋 있어 서 변수 범 위 를 네 임 스페이스 나 변수 처럼 전달 할 수 있 습 니 다.4.자 바스 크 립 트 의 대상 지향 적 특징 은 접 붙 인 것 이 라 고 생각 합 니까?자 바스 크 립 트 는 개굴개굴 착지 한 후부 터 대상 을 대상 으로 하 는 언어 이다.모든 것 은 자바 script 에서 대상 입 니 다.모든 것!심지어 숫자 와 문자 와 같은 문자 기 호 는 자신의 고유 한 구조 기 를 통 해 대상 으로 전환 할 수 있다.다른 대상 을 대상 으로 하 는 언어 에 비해 자바 script 의 차이 점 은 클래스(class)가 없다 는 것 이다.Javascript 대상 은 함수 처럼 정의 되 고 심지어 함수 자신 도 대상 입 니 다.Javascript 은 prototype 이라는 속성 이 있 습 니 다.모든 대상 에 이 속성 이 내장 되 어 있 습 니 다.대상 의 구 조 를 바 꾸 고 대상 을 수정 하 며 더 많은 변 수 를 추가 하고 더 많은 기능 을 추가 할 수 있 습 니 다
 
var derp; //will hold a Herp instance
var Herp= function(){
this.opinion="Javascript is cooler than BASIC.";
}
Herp.prototype.speak=function(){ alert(this.opinion); }
var derp= new Herp();
derp.speak();
이것 이 당신 과 무관 해 보인다 면 저 는 제 친 한 친구 인 구 글 을 소개 하고 싶 습 니 다.구 글 은 사람들 이 지식 을 배 우 는 데 도움 을 줄 수 있 습 니 다.대상 을 향 한 나의 짧 고 낮은 글 은 정말 큰 화제 이다.5.'new'키 워드 를 사용 할 때 는 장님 과 장님 같다.자 바스 크 립 트 는 틀림없이 당신 의 첫사랑 여자친 구 입 니 다.왜냐하면 당신 은 어 쩔 수 없 는 것 처럼 보이 기 때 문 입 니 다.만약 당신 이 실물 처럼 자 바스 크 립 트 를 기 쁘 게 하고 싶다 면,대상 기 호 를 알 아야 합 니 다.대상 을 예화 하거나 이례 적 으로 데 이 터 를 불 러 올 필요 가 있 는 경 우 를 제외 하고 new 키 워드 를 사용 할 필요 가 없습니다.Javascript 에서 대량의 new 변수 주 소 를 분배 하 는 것 은 매우 느 린 작업 입 니 다.효율 을 위해 서 는 항상 대상 기 호 를 사용 해 야 합 니 다
 
var rightway= [1, 2, 3];
var wrongway= new Array(1, 2, 3);
제 가 자바 script 의 변수 범 위 는 함 수 를 바탕 으로 한다 고 말 한 것 을 기억 하 십 니까?자 바스 크 립 트 의 대상 이 함수 처럼 정의 된다 는 말 을 기억 하 십 니까?만약 당신 이 new 키 워드 를 사용 하여 대상 을 설명 하지 않 는 다 면,당신 은 이 대상 을 전체 범위 내의 대상 으로 만 들 것 입 니 다.그래서 영원히 new 키 워드 를 사용 하여 대상 을 설명 하 는 것 은 좋 은 습관 입 니 다
 
var derp="one";
var Herp=function(){
this.derp="two";
}
var foo=Herp();
alert(derp);
만약 당신 이 이렇게 쓴다 면 자 바스 크 립 트 는 개의 치 않 을 것 입 니 다.당신 이 진정 으로 꺼 낸 답 은"two"입 니 다!대상 이 이런 행동 을 하 는 것 을 막 을 수 있 는 방법 은 여러 가지 가 있 습 니 다.인 스 턴 트 오 브 를 사용 할 수 있 지만 더 좋 은 방법 은 new 키 워드 를 정확하게 사용 하 는 것 입 니 다.이렇게 하면 더욱 전문 적 입 니 다.이제 자 바스 크 립 트 코드 가 엉망 으로 쓰 여 있 는 거 알 지?위 에서 말 한 것 을 기억 하면 코드 가 개 선 될 거 야.나 는 3 개의 tab 키 로 코드 를 들 여 쓰 는 것 을 좋아한다.나 는 밑줄 로 단 어 를 연결 하 는 것 을 좋아한다.나 는 함수 이름 의 이니셜 을 대문자 로 써 그것 이 대상 임 을 나타 내 는 것 을 좋아한다.물론 이것 은 다른 토론 이다.당신 의 자 바스 크 립 트 코드 를 엉망 으로 만 드 는 데 는 여러 가지 이유 가 있 습 니 다.마치 제 가 기술 이 엉망 인 것 처럼 댓 글 에 당신 의 의견,지지,반 대 를 마음껏 표현 하고 가르침 을 아 끼 지 않 습 니 다.rogeliorv 와Jared Wein다섯 번 째 점 에 존재 하 는 오 류 를 지적 해 주 셔 서 감사합니다.니 들 강해.

좋은 웹페이지 즐겨찾기