관리 메뉴

도드넷

JAVASCRIPT#5 - 자바스크립트 sort 메소드와 함수개론! 본문

창고/JS KING 포니 [중단]

JAVASCRIPT#5 - 자바스크립트 sort 메소드와 함수개론!

도드! 2016. 5. 3. 11:17





JAVASCRIPT#5 - 자바스크립트 sort 메소드와 함수에 대하여.


1.  sort() 메소드

- 배열을 정렬하는 메소드

- sort(비교용함수);

- "비교용함수"안에는 정렬을 위한 함수가 들어간다.

- 대표적인 비교용함수로는 아래와 같은것이 있다.


function applejack(a,b)

{ return a-b }


a와 b값을 받고 a-b를 리턴하는 단순한 함수다.

하지만 이것이 배열 메소드sort와 함께쓰이면 오름차순(작은것부터) 정렬을 하게 된다.


내림차순(큰것부터)로 하려면 리턴값을 b-a로 정하면 된다.


2. 함수 개론

- 함수란? 함수는 파라미터에 인풋값을 넣으면 { }안의 프로세스를 거쳐 리턴값을 산출하는 것. 

- 함수 작성&선언하는 방법 : function 키워드 + 함수이름 + (파라미터) + {함수내용과 리턴값}



sort() 메소드 예제 그리고 log메소드의 불편한 진실


예제


실행결과

sort(applejack2)로 내림차순 정리된걸로만 나온다.

log라는 말 "기록" 이라는 것에서 알수있듯 log메소드의 특성상 가장 나중에, 메소드 호출 까지 다 끝나면 자료를 가져오는 방식임을 알수있다. (log 메소드의 불편한 진실 :: 실시간이 아니야! 제길!)


console.log대신 alert함수로 알림창 띄우면 numbers, numbers.sort(applejack1), numbers.sort(applejack2)가 원래 의도했던대로 재대로 순서대로 표시가 된다.


참고로 함수정의도 살짝 살펴보면 라인아랫쪽에 위치했지만 잘나고 똑똑하신 자바스크립트 형님은 알아서 function 키워드를 보시고먼저 정의를 끝내주기때문에 오류없이 상위라인에서도 호출이 된다. (함수 우선주의)


*** 추가글 ***

- 불편한 진실은 개뿔...ㅠ 사실 log 함수라는 특성때문이 아니라 콜백함수의 특성상 비동기 처리되서 그런것이였다 -_-  반면, "alert"함수가 정상작동한 이유는 경우는 "확인" 누르기전까지 자바스크립트 자체가 멈춰서 그런것인듯? 흠흠 아몰랑! 관련글 링크 : 자바포니 11번째 포스팅 콜백함수





반응형
Comments