JS의 모든 값은 데이터 타입을 갖는다. 각 타입별로 사용 목적과 해석방법, 저장 공간 등 모두 다 다르다.
Js의 경우 모든 숫자형 값은 실수형이다. 10진수의 실수만을 다루며 그래서 정수끼리 나눠도 실수 형태가 나온다.
텍스트 데이터를 16비트 유니코드 문자의 집합을 기반으로 나타내는 데 사용된다.
(''),(""),(``)으로 표현이 가능하다. 이렇게 감싸는 이유는 토큰이나 식별자와 구분하기 위해서이다.
(``)를 사용하여 이스케이프 시퀀스('\n','+',등)를 사용하지 않고도 엔터로 줄바꿈이 가능하다.
ES6부터 나왔으며 ${}를 사용해 문자열 연산을 할 수 있다.
true false
JS엔진이 변수를 초기화할 때 사용하는 값이다. (할당 이전)
소문자로 null. undefined를 의도적으로 사용하는 것은 좋지 않지만 값이 없음을 표현하기위해서 대신에 null을 사용하면 된다. null을 할당하면 아무것도 참조되지 않은 공간이 되고 가비지 콜렉션이 수행된다.
특이하게 이 심볼 값은 함수를 호출 해 생성한다. 이렇게 생성된 심볼 값은 외부에 노출되지 않으며 다른 값과 중복되지 않는다. => 주로 객체의 프로퍼티 키로 사용한다.
JS의 모든 것은 객체로 이루어져 있다. 나중에 자세하게 알아보자!
JS는 변수 선언 시에 타입을 설정하지 않는다. 따라서 어떤 데이터 타입의 값이던 자유롭게 할당할 수 있지만 비효율적이다. 즉, 선언에 의해서가 아닌 할당에 의해 타입을 결정하는 동적 타입 언어이다. 변수는 타입을 갖지 않지만 값은 타입을 가지고 메모리에 저장된다.
그래서 주의사항
피연산자들을 대상으로 새로운 값을 만들기 위한 동사의 역할을 하는 문자.
값으로 평가될 수 있는 연산의 대상자.
새로운 숫자 값을 만드는 연산자로 연산이 불가능할 경우 NaN을 반환한다.
두 개의 피연산자를 연산해 숫자 값을 만든다. +, -, /, *, % 등
하나의 피연산자를 연산해 직접 피연산자의 값을 변경한다. ++ , --, +, - 드
단항 산술 연산자를 전위 연산을 하면 먼저 피연산자의 값을 변경하고 다음 연산을 수행
단항 산술 연산자를 후위 연산을 하면 먼저 다음 연산을 수행하고 피연산자의 값을 증가
우항의 값을 좌항의 식별자에 할당하는 연산자 =
==(동등비교 타입이 안맞아도 값만 같으면 true) ===(일치비교 타입이랑 값이랑 다 맞아야 true)
단, NaN === NaN ->false, 0 === -0 ->true를 주의해야한다.
<,>, >=, <=
분기하여 할당하는 연산자 let result = x === 0 ? 'true' : 'false'; result는 x의 손에 달렸다.
if문처럼 사용할 수 있지만 수행문이 하나인 경우에만 사용가능하다. 또한 값으로 평가되어야한다.
||, &&, !
!연산자는 언제나 불리언 값을 반환한다.
,로 나누고 ()로 묶는다.
데이터 타입을 반환하지만 typeof null인 경우 object를 반환한다.
좌항이 밑 우항이 지수 값을 나타내는 표현식인 문이다.