자바스크립의 핵심 개념
1. 객체
- 자바스크립의 기본 데이터 타입" boolean, number, string.
- 특별한 값: null, undefinded
- 위 데이터 타입, 값을 제외한 나머지는 모두 객체이며, 자바스크립트는 null, undefined을 제외한 모든 것을 객체로 다를 수 있다.
1-1) 숫자
- 자바스크립트는 하나의 숫자형만 존재한다.자바스크립트에서는 모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문이다.
- 자바스크립트에서는 정수형이 따로 없고, 모든 숫자를 실수로 처리하므로 나눗셈 연산을 할 때는 주의해야 한다.
var num = 5 /2;
console.log(num);
console.log(Math.floor(num));
1-2) 문자열
- 문자열은 작은 따옴표(')나 큰 따옴표(")로 생성한다.
- 자바스크립트에서는 한 번 생성된 문자열은 읽기만 가능하지 수정은 불가능하다.
var str = 'test';
console.log(str[0], str[1], str[2], str[3]);
str[0] = 'T';
console.log(str);
1-3) 불린값
- 자바스크립트는 true와 false 값을 나타내는 불린 타입을 가진다.
1-4) null과 undefined
- 이 두 타입은 모두 자바스크립트에서 '값이 비어있음'을 나타낸다.
- 자바스크립트 환경 내에서 기본적으로 값이 할당되지 않은 변수는 undefined 타입이며, undefined 타입의 변수는 변수 자체의 값 또한 undefined이다.
- null 타입의 경우는 개발자가 명시적으로 값이 비어있음을 나타내는 데 사용한다.
- null 타입 변수의 typeof 결과가 null이 아니라 object이다.
var nullVar = null;
console.log(typeof nullVar === null);
console.log(nullVar === null);
2. 함수
3. 프로토타입
- 모든 객체는 숨겨진 링크(Link)인 프로토타입(Prototype)을 가진다. 이 링크는 해당 객체를 생성한 생성자의 프로토타입 객체를 가리킨다.
4. 실행 컨텍스트와 클로저
- 자바스크립트는 자신만의 독특한 과정으로 실행 컨텍스트를 만들고 그 안에서 실행이 이루어진다. 이 실행 컨텍스트는 자신만의 유효 범위(Scope)을 갖는데, 이 과정에서 클로저를 구현할 수 있다.