JS/JavaScript&TypeScript

JavaScript&TypeScript 02. 값 ( Value )

shin96bc 2022. 4. 2. 23:41

(1) 값 ( Value )

     Github: https://github.com/SHIN96BC/JavaScript-TypeScript-Concept-2022/tree/main/02_Value

     1) javaScript
          <1> 기본 자료형( Primitive )
               1> Boolean ( true / false )
               2> Null ( 값이 없다 )
               3> Undefined ( 값이 정의되어 있지 않다 )
               4> Number ( 정수 / 실수 )
               5> String ( 문자열 )
               6> Symbol ( ECMAScript 6 에 추가됨 )
          <2> Object
               1> 위에 기본형 6개를 제외하고는 모두 Object 타입이다.

          <3> 자바 스크립트는 웬만하면 모두 다 값으로 취급한다.
          <4> 배열, 함수조차도 값으로 취급한다.

     2) typeScript
          <1> 기본 자료형
               1> Boolean ( true / false )
               2> Number ( 정수 / 실수 )
               3> String ( 문자열 )
               4> Array ( 배열 )
               5> Tuple ( 튜플 )
                    1. 튜플은 요소의 타입과 개수가 고정된 배열을 표현할 수 있다.
                    2. 요소들의 타입이 모두 같을 필요는 없다.
                    3. 배열 내의 원소의 타입들을 제한하고 싶을 때 사용하면 좋다.
               6> Enum ( 열거 )
                    1. 데이터가 아닌 그냥 '코드' 이다.
                    2. 자바스크립트의 Object 와 아주 유사하다.
                    3. 자바스크립트 코드로 변환될 때 Object 타입으로 구현된다.
                    4. enum 타입을 사용할 때는 enum 이라고 하는 데이터가 실제로 주고받는 용도의 데이터인지,
                       그저 코드상에만 존재하면 되는지 판단해서 코드상에만 존재하면 되는 상황일 때 사용하자.
                    5. 기본적으로 enum 은 0 부터 시작하여 멤버들의 번호를 매긴다.
                    6. 멤버 중 하나의 값을 수동으로 설정하여 번호를 바꿀 수 있다.
               7> Any
                    1. 모든 데이터 타입이라는 뜻을 가지고 있다.
                    2. Any 로 해 놓으면 어떤 값도 데이터 타입으로 들어갈 수 있다.
                    3. Any 만 사용하게 되면 자바스크립트와 완전히 똑같아진다. 그렇게 되면 타입스크립트를 

                       사용하는 의미가 없어진다.
                    4. 타입스크립트에서는 Any 를 가능하면 쓰지않고 지양하라고 권고하고 있다.
               8> void
                    1. 대표적으로는 함수가 리턴값이 없는 경우에 타입에 void 라고 적는다.
                    2. 어떤 타입도 존재할 수 없음을 나타낸다. ( any 의 반대 타입 )

               9> Null and Undefined
                    1. Null 은 아무것도 없다는 뜻이다.
                    2. Undefined 는 아직 정의되어 있지 않다는 뜻이다.
                    3. 자바스크립트와 완전히 동일하다.
               10> Never
                    1. Never 는 절대 발생할 수 없는 타입을 나타낸다.
                    2. 예를 들어, 함수표현식이나 화살표 함수표현식에서 항상 오류를 발생시키거나 

                       절대 반환하지 않는 반환타입으로 쓰인다.
                    3. 이 함수는 리턴값도 없고, 리턴하지 않는다, 반환하지 않는다 라는 의미를 갖는다.
               11> Object ( 객체 )
                    1. 기본형을 제회하고는 모두 Object 이다.

     3) 원칙 ( 자바스크립트 와 타입스크립트 둘다 동일하다. )
          <1> 언어 레벨에서 값으로 취급하는 것은 무엇이든 변수에 넣을 수 있다.
          <2> 값이라고 하는 측면을 데이터보다 훨씬 더 확장해 놓았다.
          <3> Object 조차도 값으로 취급한다.
          <4> Object 안에는 데이터도 있지만 코드도 들어가있다. 즉 코드의 묶음인 함수조차도 

                 값으로 취급한다.