기본 데이터 타입 (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에 대한 링크를 몰래 가지고 있다.
댓글 없음:
댓글 쓰기