- 비동기작업
Ajax(Asynchronous Javascript And Xml)
브라우저의 페이지가 변경되지 않고 웹페이지가 변경될 수 있게 해주는 것(웹에서의 자바스크립트 비동기 작업의 예시)
ex)페이스북의 알림창 같은 것들.
- 클로져
외부 함수의 지역 변수 등에 내부 함수가 접근할 수 있으며 외부 함수의 종료 후에도 외부 함수의 것이 남아 있어 사용 가능함
외부 함수나 객체는 자바의 클래스의 개념과 비슷하게 보면 됨.
ex)
function factory_movie(title){ 여기서 title이 외부함수의 지역 변수
return {
get_title(){ return title;}
set_title(_title){ title=_title;}
}
}
ghost = factory_movie('ghost in the shell');
* 여기서 ghost에는 리턴으로 들어오는 {객체} 가 할당 됨.
(자바처럼 생각하면 안됨. { } 안에 있는 객체 전체가 할당 된다고 생각하면 됨. 그로 인해 ghost가 class가 된다고 생각)
ghost.get_title(); = > ghost in the shell
ghost.set_title('공각기동대');
----이를 통해 class와 비슷한 것을 알 수 있음.
** 객체와 함수의 구분 잘하기
- arguments(유사배열)
ex)
function sum(){
var i,_sum=0;
for( i=0, i< arguments.length; i++){
_sum+=arguments[i];
}
return _sum;
}
document.write(sum(1,2,3,4)); - > 10
sum()안에 있는 1,2,3,4 가 arguments에 대입
arguments.length는 4 arguments[0] - 1 arguments[3] - 4
* 자바스크립트에서는 인자 갯수 상관 없음
- 매개변수
함수.length()와 arguments.length()의 차이점
ex)
function one(arg1){
console.log(one.length, arguments.length);
}
one('val1', 'val2');
one.length=1 , arguments.length=2
함수.length는 선언시의 매개변수 수
arguments.length는 호출 시의 인자 수
- apply 메소드
sum.apply( null, [1,2]); -> 3 : 원래는 이렇게 사용하지 말것
ex) apply 메소드의 활용
o1 = {var1: 1, var2: 2, var3: 3};
function sum(){
var _sum=0;
for( name in this){ : 여기서 this는 o1
_sum+=name;
}
return _sum;
}
alert(sum.apply(o1)); -> 6
: sum 함수가 o1의 객체 내의 함수인 것처럼 사용되어진다.
'코딩 > Javascript' 카테고리의 다른 글
[Javascript] 공부하기 - 6 (0) | 2017.10.28 |
---|---|
[Javascript] 공부하기 - 4 (0) | 2017.10.26 |
[Javascript] 공부하기 - 3(정규표현식) (0) | 2017.10.26 |
[Javascript] 공부하기 - 2 (0) | 2017.10.26 |
[Javascript] 공부하기 - 1 (0) | 2017.10.26 |