자바스크립트 타입
Primitive : 데이터는 단일값을 나타낸다.
- number
- boolean
- string
- undefined
- null
- Symbol
- new in es6
- 심볼 값은 객체의 유일한 프로터티 키를 만들기 위해 사용할 수 있다.
Non-Primitive
undefined vs null
- undefined: 정의되지 않았다.
- JS엔진이 변수를 초기화 할 때 넣어주는 값이다.
- 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하게 되면 undefined를 반환한다. 즉 초기화되지 않은 변수라는 뜻이다
- null: 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.
- 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미이다. 자바스크립트엔진은 참조하지 않은 메모리 공간에 대해 가바지 콜렉션을 수행한다.
참조
object {} > Array [] || Function ()
- 함수를 선언하고 함수의 hi프로퍼티를 선언하고 'hihihihi'를 할당했다
- 그런데 마치 객체 처럼 정상적으로 코드가 실행된다.
- 즉 함수도 객체이다.
function a () {
return 5;
}
a.hi = 'hihihihi'
console.log(a.hi)
//'hihihihi'
표준 내장 객체
기초 객체 : 다른 모드 객체의 기반이되는 기본 객체
- Object: Object 클래스로 자바스크립트의 모든 객체는 Object의 인스턴스이다.
- Function: Function 생성자는 새 Function 객체를 만든다. 모든 자바스크립트 함수는 Function 객체이다.
- Boolean: Boolean 객체는 불리언 값을 감싸는 객체이다.
true.toString()
//'true'
- 점 호출법을 사용하여 원시값인 string에 객체의 메소드를 호출하고 있다.
- 원시값 중 일부(boolean, string, number...)는 Wrapper object가 감싸고 있는 형태이다.
Bololean(true).toString()