(조건표현문) ? 참 : 거짓;   // 예시 test ('abc' == 'abc') ? 1 : 2; // test = 1


배열 정렬(오름차순 및 내림차순)

//정렬할 배열
var test = [3, 9, 1, 8];

//배열 정렬
test.sort();

//결과값
[1, 3, 8, 9]
 
test.reverse();
 
//결과값
[9, 8, 3, 1]

객체정렬(오름차순)

//정렬할 객체 배열 var test = { id: "test", name: "test", children: [ { name: "3번", seq: 3 }, { name: "7번", seq: 7 }, { name: "1번", seq: 1 }, { name: "4번", seq: 4 } ] }; //현재 객체 배열을 정렬 test.children.sort(function (a, b) { return a.seq < b.seq ? -1 : a.seq > b.seq ? 1 : 0; });

// 더 간단한 방법

test.children.sort(function (a, b) {

return a.seq < b.seq ? -1 : 1;

});

//결과값 { id: "test", name: "test", children: [ { name: "1번", seq: 1 }, { name: "3번", seq: 3 }, { name: "4번", seq: 4 }, { name: "7번", seq: 7 } ] }

.sort() method 안에 함수를 파라미터로 넣어 1, -1, 0을 리턴하여 순서를 정하는 방식이다.

seq를 기준으로 내림차순으로 정렬하고 싶은 경우 부등호의 위치를 변경하거나 -1과 1의 자리를 변경하면 된다.



function sortNumber(a,b){//콜백함수

    // 위의 예제와 비교해서 a와 b의 순서를 바꾸면 정렬순서가 반대가 된다.

    return b-a;

}

var numbers = [20, 10, 9,8,7,6,5,4,3,2,1];

alert(numbers.sort(sortNumber)); // array, [20,10,9,8,7,6,5,4,3,2,1]



numbers는 객체이다. (배열객체)

sort(sortNumber()); -->sortNumber가 콜백함수이다. 


이것이 콜백이다.(콜백이 가능한 이유: 자바스크립트에서는 함수가 값이기 때문이다.)

(여기서 sort는 함수가 아닌 메소드라고 한다.), 배열이나 sort는 자바스크립가 기본적으로 가지고 있는 기능이기에 내장객체, 내장메소드, 빌트인 객체, 빌트인 메소드라 한다. 

우리가 만드는 객체, 메소드, 함수는 사용자 정의 객체, 사용자 정의 함수라 한다.


2. 비동기 처리

cf.) 글작성->이메일 발송-> 작성완료: 순차적작성을 동기식 처리라고 한다. 

글작성하고 이메일 발송 부분은 예약하고 작성완료(to do)를 하면 순식간에 일이 처리된다. 내부적으로는 예약 부분을 백그라운드에서 비동기적으로 처리

웹페이지에 표시되지않은 데이터를 화면에 표시할 수 있는 이유는 내부적으로 화면에 표시된 정보를 서버에 요청해서 화면에 표시한 것이다.(웹페이지 리로드 없이 작업한 것임)

클릭시 웹페이지가 변경되지 않고 서버와 웹브라우저가 조용히 통신하는 기법을 Ajax라고 한다.

콜백은 비동기처리에서도 유용하게 사용된다. 시간이 오래걸리는 작업이 있을 때 이 작업이 완료된 후에 처리해야 할 일을 콜백으로 지정하면 해당 작업이 끝났을 때 미리 등록한 작업을 실행하도록 할 수 있다. 

다음 코드는 일반적인 환경에서는 작동하지 않고 서버 환경에서만 동작한다. 동영상을 참고한다.




자바스크립트 콜백

http://yubylab.tistory.com/49

+ Random Posts