Stack Building
[javascript] 데이터 타입과 객체 본문
정리자료 출처: 권동섭 교수님 강의안
기본적으로 데이터 타입은 두 가지다. 자바에서도 비슷한 이름을 썼었다. 기본형과 참조형.
용어 자체는 다른 언어들에서도 많이 쓰이는 것 같다.
특수한 건 null 외에도 undefined가 있다는 것.
간단하게 쓰면, null은 나중에 할당할 것을 의도하고 할당할 수 있는, 값은 있으나 의미가 없음이고
undefined는 값도 할당되지 않은 것이다.
값에 의한 호출과 참조에 의한 호출의 차이는 메모리 공간의 사용에 있다.
cbv의 경우에는 원본 값 변경의 가능성이 없지만,
인자를 넘겨주는 등의 수행을 할 때 메모리 공간을 할당한다.
그러나 cbr의 경우에는 원본 값이 변경될 수 있지만,
메모리 공간의 낭비는 막을 수 있다.
자바스크립트에서는 { }, 다른 언어에서 해시, 맵, 딕셔너리라고 불리는 것이 오브젝트다.
자바처럼 자바스크립트의 객체도 Object 객체의 파생이다.
새로 알게 된 것은 자바스크립트 객체는 암묵적으로 Array 객체를 상속한다는 것이다.
객체의 구조가 자신을 이루는 요소들을 배열에 저장하고 있는 모습이다.
객체의 메소드도 객체 안에 존재하는 것이 아니라 참조값만 가지고 있다.
함수가 호출 가능한 객체라는 것은 이것을 의미한다.
재미있는 것은 자바스크립트의 객체 생성 방법은 두 가지다.
생성자를 사용하는 것, json 방식을 사용하는 것이다.
(1) 생성자 사용
function Ship(year){
this.year=year;
}
var 거북선 = new Ship(2019);
new 키워드를 사용해서 만드는 것이다.
동일한 구성을 가진 객체를 여러 개 만들 수 있다.
(2) json 방식 사용
var 거북선 = {
year: 2019
}
이것은 json 파일에서 많이 보던 모양인데, 정확한 이름은 '객체 리터럴'을 사용하는 것이다.
이 경우에는 단일 객체로만 활용된다.
여기에는 자바스크립트의 call by value, call by reference에 대한 자세한 설명이 있고,
객체에 대한 설명이 자세히 정리되어 있는 글은 여기다.
'웹' 카테고리의 다른 글
쓰로틀링, 디바운싱 (0) | 2019.03.29 |
---|---|
API (Application Programming Interface) (0) | 2019.03.27 |
npx (0) | 2019.03.19 |
stateless와 stateful (0) | 2019.03.16 |
[javascript] 자바스크립트 기본 특징 (1) | 2019.03.13 |