-
Notifications
You must be signed in to change notification settings - Fork 2
[정리] 1주차, 1 ~11
-
값
JS의 데이터 타입은 크게 2가지로 나뉜다.
원시 타입은 변경할 수 없다(불변성
)
따라서, 원시값을 할당한 변수에서 값을 바꾸려면 ! 새로운 값을 메모리에 할당한 뒤, 그 주소값을 변수에게 주는 재할당으로 이루어진다.- 원시타입: 6가지
number, string, boolean, undefined, null, symbol
- 객체타입
- 원시타입: 6가지
-
symbol
다른 값과 중복되지 않는 유일무이한 값이다.
따라서, 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
*함수호출로 생성let test = Symbol('key');
-
falsy한 값
false undefined null -0 +0 NaN ''(empty string)
-
JS는 동적타입언어
- JS의 변수는 값의 타입 제한이 없다. 그렇기에 런타임에 변수 타입이 결정되는 동적타입언어이다.
- 변수에 할당되어 있는 값의 타입을 추론해 변수의 타입이 결정된다.
- 컴파일에 타입체크 x, 타입보장 x
-
연산자
== 과 === 의 차이:
==: 동등 비교, ===: 일치비교
== 은 타입이 다르더라도 암묵적 타입 변환을 통해 값이 같을 수 있다면 참을 반환하는 연산자이다.
=== 은 두개의 피연산자의 타입이 같고 값도 같은 경우에만 참을 반환한다.
이러한 이유 때문에 == 는 결과를 예측하기 어렵기 때문에 값이 같은지 다른지 알고 싶을때 일치 비교 연산자(===) 를 주로 쓰는게 좋다. -
데이터 타입
undefined 와 null 의 차이
undefined: 변수가 선언 되어있을 때, 값이 할당되있지는 않은 상태에서 쓰레기 값이 들어갈 것을 방지하기위해 만들어진 데이터 타입이자 키워드
null: 이미 존재하는 값을 지워버릴 때 주로 사용하는 데이터 타입이자 키워드
참고: 어떤 데이터가 null 인지 판단하기 위해서는 typeof 연산자보다는 바로 === 일치 연산자를 사용하는 것이 좋다.
왜냐하면 typeof 연산자는 무조건 object 를 반환하는 연산자이기 때문에 null 가 일치 연산자를 사용하면 거짓을 반환하기 때문이다. -
JS 버그 & 주의
console.log(typeof null) // "Object"
console.log(typeof NaN) // "number"
- 자바스크립트의 함수는 일급 객체
- 일급 객체란 변수, 함수 parameter, 반환값 등으로 쓰일 수 있다는 말임으로 객체의 property 로 함수가 들어갈 수 있고 이러한 함수를 method 라고 한다.
- 자바스크립트는 객체의 property 를 동적으로 추가하고 삭제 할 수 있다.
- 주의: 객체에 존재하지 않는 property 에 접근하면 reference error 가 뜨는게 아니라 undefined 에러가 뜬다. 또한 없는 property 를 제거해도 아무 오류 없다.
-
원시값 !== 상수
변수는 값을 담을 수 있는 메모리 공간이다.
변수명으로 메모리 공간을 식별한다. 재할당이 금지된 변수를 상수const
라고 한다. -
객체
객체는 변경가능한 값이며, 프로퍼티를 동적으로 추가/삭제가 가능하다.