구분 | 데이터 타입 |
---|---|
원시 타입 | Number |
원시 타입 | String |
원시 타입 | boolean |
원시 타입 | undefined |
원시 타입 | null |
원시 타입 | Symbol |
객체 타입 | 객체, 함수, 배열 등 |
자바스크립트의 데이터타입에는 위와 같이 primitive(원시타입) 타입의 데이터 타입이 6개, 객체 타입의 데이터 타입이 객체 함수 배열 등이 존재한다.
새로 알았던 점은 NaN 이라는 데이터 타입은 Number 타입 이라는 것이다. (not a number의 약자)
var a=100;
var b=100;
위 코드와 같이 변수를 선언, 할당 했을 때 메모리에는 100이라는 값의 주소가 할당되며 변수 a와 b는 모두 100이라는 값의 메모리 주소를 가리킨다.
int a = 1;
var a = 1;
a.toSting();
첫 번째 코드는 c언어의 변수 선언이고 마지막은 자바스크립트의 변수 선언이다.
c언어처럼 앞에 타입을 지정하여 변수 선언을 해주는 언어는 정적 타이핑 언어라고 한다.
자바스크립트 같은 경우는 타입지정을 따로 해주지 않고 내장메소드로 형변환이 가능하다. 이것을 동적타이핑 언어라고 한다.
=> 따라서 자바스크립트는 동적타이핑 언어이다.
2 ** 2
Math.pow(2,2)
둘 다 같은 값을 리턴한다.
const obj = {
a : {
b: {
c: {
d: 1
}
}
}
}
위와 같이 객체가 있다고 가정했을 때, 옵셔널 체이닝 연산자를 이용하면 키 값 d가 가지고 있는 value 값을 쉽게 뽑아서 쓸 수 있다.
console.log(obj.a?.b?.c?.d)
const obj = {
a : {
b: 1
}
위와 같은 코드가 있을 때 null 병합 연산자를 사용하면 접근한 값이 undefined나 Null 일 경우, undefined를 반환하고 값이 존재할 경우 그 값을 병합하여 반환한다.
const a = obj.a.b ?? 10; //a = 10