2016년 3월 11일 금요일

자바스크립트 이것만!

기본 데이터 타입 (boolean, number, string)  특별값 (null, undefined)
참조 타입 - 객체(Object) - Array, Funtion, 정규표현식

* 함수가 객체임을 기억.
* 모든 객체는 프로토타입 [[Prototype]] 링크를 가짐.
* 모든 객체는 다른 객체를 상속받아서 존재한다.
  그래서 모든 객체는 toString() 함수를 사용하는 것이 가능하다.
  배열같은 경우는 length 와 push() 두 가지 프로퍼티를 가지고 있다.

  * 느슨한 타입 체크
var로 선언한 변수에 문자열, 숫자 다 넣을 수 있다.

* 객체는 key:value 형태의 프로퍼티를 여럿 가지고 있는다.
           key 는 스트링, value에는 기본 데이터 타입, 객체, 함수 등이 들어갈 수 있음.

* 프로퍼티 접근은 obj['prop_name'] 와 같이 접근하거나
                           obj.prop_name 과 같이 접근을 한다.
  없는 프로퍼티에 값을 할당하면 동적으로 생성이 된다.

* for in 문
      for ( prop in obj) {
             console.log(prop, foo[prop]);
      }
      prop 은 프로퍼티의 key 값 (String) 이다.

* 배열의 요소 삭제는 arr.splice(2,1) 과 같이 하여 2번째 요소 포함해서 하나를 삭제.

* == 는 비교 대상 간에 타입 변환이 수반되어 확인
  ===는 비교 대상 간에 타입 변환 없이 확인
  1 == '1' 은 true
  1 === '1' 은 false

* 기본 함수 정의법
     function func(x,y) { return x + y; }

* 익명 함수 정의법
     var func = function (x, y) { return x + y; }
     func(1,2);    

* 즉시 실행 함수
   함수를 () 로 감싸고 이어서 (인자)로 호출을 한다.
   (function (arg) { alert('hey' + arg); } )('yo');

일단은 이 정도는 알아야 기본적인 자바스크립트 코딩이 가능할 듯.

그 외에도 알아야 될 핵심 코어 적인 부분이 있지만...

-----------------------------------------------------------------------------------

* 자바스크립트에서의 mutable/immutable
Numbers, strings, and booleans 는 immutable(변경 불가능), 함수는 가지고 있음.
Object 는 mutable(변경 가능한) key기반의 collection


* Javascript는 숫자 타입이 하나다. 내부적으로 64비트 floating point로 자바에서의 double과 같다. 다른 언어와 달리, Integer라는게 따로 없으니. 1과 1.0이 같다

* String은 '도 되고 "로 감싸도 된다. toUpperCase()함수를 사용하면 대문자로 바꿔준다.

* In JavaScript, arrays are objects, functions are objects, regular expressions are objects, and, of course, objects are objects. 배열, 함수, 정규식이 오브젝트라는..!!

* 오브젝트는? 프로퍼티를 담는 컨테이너. 프로퍼티는 key, value 쌍

* 모든 오브젝트는 prototype object에 대한 링크를 몰래 가지고 있다.










댓글 없음:

댓글 쓰기