1. 인터프리터 언어

 

2. 데이터형

 number - 실수, 정수

 string - 문자, 문자열

 undefined 가능

 

3. 변수 사용

 var 변수명;         -> parsing시 undefined 값 할당. (지역 변수)

  => scope가 {} 단위가 아닌 function{} 단위.

 

 변수명 = literal;   -> run time 중 값 할당. (전역변수)

 

 

4. 데이터 타입의 전환이 자유로움. 변수에 할당되는 값에 따라 변수 타입 결정됨.

 

5. typeof (변수)  => 타입 반환

'string', 'number', 'object', 'undefined', 'function', 'boolean',

 

6. 데이터가 자동으로 형변환 됨.

 

7. 문자열과 다른 데이터형이 + 연산하면 문자열로 연결됨.

ex) '123'+45 => '12345'

 

8. 비교 연산자 ==, != 필요시 형변환 후 비교

 

9. identical 연산자 ===, !== 형 변환하지않고 비교

 

10. 논리연산자 &&, || 사용 시 자동 형 변환으로 return 값이 true, false가 아닌 결과 값도 리턴됨.

ex) "123" || 0  => "123"

     "123" && 0 => 0

어떤 함수가 인자를 받을 때 반드시 배열을 받아야 할 경우

이벤트 처리시 ie와 다른 브라우저 간 처리방법이 다른경우

 

11. 기타 연산자

,  => 계속해서 진행

instanceof => 객체가 지정된 클래스의 인스턴스인지 확인

 

12. 향상된 for문

for(i in array){

}

 

13. break label문

label:

for(i=0;i<9;i++){

    for(j=0;j<9;j++){

        break label;

    }

}

// 여기로 옴.

 

14. continue label문

label:

for(i=0;i<9;i++){ // 여기로 옴.

    for(j=0;j<9;j++){

        continue label;

    }

}

 

15. 함수 선언

함수명(); // 가능

function 함수명(매개변수, ...){

    return 값;

}

 => 함수가 생성되는 시점. parsing 단계

 

16. 함수 리터럴 (익명함수)

변수명(); // 불가능

var 변수명 = function(매개변수,..){

    return 값;

}

변수명(); // 가능

 

 => 함수가 생성되는 시점. runtime 단계

 

17. Function 생성자

var a = 변수명(인자1,..) // 불가능

var 변수명 = new Function("인자1", ...,"실행 문장");

var a = 변수명(인자1,..) // 가능

 

 => 함수가 생성되는 시점. runtime 단계

 

18. 함수 정의 매개변수 개수와 호출인자 개수가 달라도 가능

function test(a, b){

}

test(a); => 가능

test(a,b); => 가능

 

19. arguments 내장변수를 이용해 parameter 배열을 사용가능

    arguments.callee()는 현재 실행 함수 호출

function test(a, b){

    for(i=0; i<arguments.length; i++){

        arguments[i];

        arguments.callee(a); // 재귀함수 사용가능

    }

}

test(a);

test(a,b);

 

20. 중첩 함수를 이용하여 외부에서 호출 불가하도록 사용 가능

var a=function(){

    var b = function(){

    }

}

b(); // b함수 호출 불가

 

function a(){

    function b(){

    }

}

b(); // b함수 호출 불가

 

21. 콜백 함수 - 이벤트 처리시 많이 사용

var a = function(){  //  콜백 함수

    // 실행문

}

 

onclick(a); // onclick()이벤트로 a콜백 함수 호출

 

22. 내장함수

alert("a"); // 알림창

setTimeout(함수, timeout 시간); // 한번 실행

setInterval(함수, timeout 시간) // 반복 실행

parseInt("문자열"); // string -> number

parseFloat("문자열"); // string -> number

 

* 별도 정리

 

 

23. 내장객체

 * Data

 - String, Number, Date, Array, Boolean, Object, Math, RegExp

 

 * Browser

 - Window, Screen, Location, History, Navigation

 

 * DOM

 

* 별도 정리

 

24. 지역변수, 전역변수

1) function 밖에서 변수를 선언하는 경우 - 전역변수
2) function 내부에서 변수를 선언하는 경우 - 전역변수
    (반드시 변수가 선언된 function부터 실행되어야한다. )
3) var키워드를 이용해서 function내부에서 정의하는 변수 - 지역변수
4) var키워드를 이용해서 function 밖에서 정의하는 변수 - 전역변수

 

25. 함수 호이스팅

선언부(<head>)에 함수를 선언시 global영역으로 최우선으로 실행된다. 

이로 인해 문제가 발생하는데,

1) 선언부에 함수의 호출이 있는 경우 함수의 선언이 선행되지않아도 에러가 발생하지않는다.

2) Global 영역이 크면 respone시간이 오래 걸린다.

이로인해 표현식으로 사용 권고.(함수 리터럴)

var 변수명 = function 함수명(매개변수1,..){

           실행내용

}

+ Recent posts