javascript 는 다중 패러다임 언어다
객체지향 절차지향 프로그래밍이 가능하다
javascript는 타입에 대한 제약이 느슨한 타입 언어(Loosely Typed Language)이다 = 프로그램 유연성이 뛰어나다
변수를 선언할때 타입을 지정하지 않는다
뱐수 타입이 어떤 값을 넣는지 따라서 변수 타입이 자동으로 결정되기때문에 유연성은 확보 되지만 이 데이터를 꺼내서 사용할때에 해당 변수에 어떤 타입의 데이터가 들어있는 알지 못하면 그 부분에 대한 검증이 필요함
자바스크립트의 가장 큰 특징임

자바스크립트 원시타입 6가지
객체타입 3가지
실수 정수 구분 x
8byte 의 실수 형태로 처리함
주의 ->
부등소수점에 대한 오류 발생 할 수 있음
NAN 계산식의 결과가 숫자가 아님을 나태내는 상수
Infinity 무한대나타내는 상수 어떤수를 0으로 나눈거나 infinity 를 어떠한 수로 나눈 식의 결과를 나타냄
//부등소수점 연산 오류
let x = 0.3 - 0.2;
let y = 0.2 - 0.1;
console.log(x==y); //false
console.log(x); // 0.999999999998
console.log(y); //0.1
//infinity , NAN
console.log(100 / 0); //infinity
console.log(infinity / 100); //infinity
console.log(0 / 0); // NAN
console.log(parseInt('1A')) //1
console.log(parseInt('A')) //NAN
문자형 지원 x 문자열 o
ture 값 과 false 값중 하나 를 가진다.
boolean 에서 0 값은 false 를 의미하며
0의 외의 숫자 값은 ture 를 의미합니다.
은 값이 없거나 비어있음 을 뜻함
오브젝트 타입을 가지게 되는 정보
null 오브젝트 타입이면서 아무것도 참조하지 않는 값
값이 초기화 되지 않았음
저희 되지 않음을 뜻함
해당 변수 자체 타입이 결정x
변수를 선언 하고 어떤 변수 값으로 초기화 하기 않으면 그 변수의 타입은undefined
특정 변수 선언 후 거기에 null값을 넣으면 오브젝트 타입이 됨
심볼타입은 변경 불가능한 원시타입 값
자주 안씀
변수가 저장되어 있는 데이터 타입을 알아보려면
typeof 명령어 를 사용하면 된다
var num = 10;
var str = '문자'
console.log(typeof num); // number
console.log(typeof str); // string