FrontEngineer JungBam

JavaScript의 타입 / 자료구조 본문

자바스크립트 개념

JavaScript의 타입 / 자료구조

정밤톨 2022. 11. 18. 12:55

JavaScript의 타입 : 느슨한 타입의 동적 언어

☞ 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 / 재할당 가능

 

어떤 값들이 있는가

원시값(언어의 최고 로우레벨에서 직접 표현되는 불변 데이터)
① Boolean
   true / false 값으로 논리 값을 말함.
   비교 연산자의 결과값으로 반환되는 값
   ※ Boolean 객체 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Boolean
「truthy와 falthy」

  - truthy : falthy 값을 제외한 모든 값으로 논리값을 기대하는 문맥에서 true로 평가되는 값
  - falthy : 0, -0, 0n, "", null, undefined, NAN(Not A Number)


② Null
    null 값 : 의도적으로 비어있는 값을 이야기 한다.

③ Undefined : 선언한 후 값을 할당하지 않은 변수
④ Number / BigInt : 숫자 타입 / 범위의 차이

  Number의 범위 : (-(2^53 − 1)부터 2^53 − 1까지의 수)

   ※ 유의할 점 : Number와 BigInt는 혼합해서 연산될 수 없음.
String : 텍스트 데이터 타입
Symbol : 적용할 수 있는 연산자가 없어 범용성이 떨어지고 그래서 사용되지 않음.

☞ 객체에 정의되어 있으나 객체의 프로퍼티나 메소드로 가져오는 방법으로 불러올 수 없음.

https://ko.javascript.info/symbol

 

심볼형

 

ko.javascript.info

예시 코드)

let sym = Symbol('explain')
let man = { name: 'soo' }
// 키값으로 심볼을 부여함.
man[sym] = "hello, i'm symbol"
for (i in man) {
  console.log(i, man[i])
}
// 비밀 채팅 => 숨겨진 채팅방 만드는 느낌

 

   ※ 리액트 - 바벨 (Symbol(react.app))

   ※ 리액트 $$type of Symbol

        ☞ https://velog.io/@chltjdrhd777/Symbol%EA%B3%BC-React%EC%9D%98-typeofe

 

Symbol과 React의 $$typeof

javascript에 타입중 하나인 Symbol은 특수하게 작성되는 데이터값을 생성할 수 있는 생성자 함수이다.기본적으로 웹 브라우저가 실행되면서 전역객체가 만들어질 때, 빌트인 생성자 함수로 제공되

velog.io

★ 도전과제 : https://github.com/facebook/react 에서 first good issue 해결해서 풀리퀘스트 보내기

 

GitHub - facebook/react: A declarative, efficient, and flexible JavaScript library for building user interfaces.

A declarative, efficient, and flexible JavaScript library for building user interfaces. - GitHub - facebook/react: A declarative, efficient, and flexible JavaScript library for building user interf...

github.com

 

JavaScript가 데이터를 저장하는 방식(→ 모던 자바스크립트 P.37)

☞ 컴퓨터는 CPU를 사용해 연산하고 메모리를 사용해 데이터를 기억

☞ 메모리는 메모리 셀(1바이트 / b 비트)로 구성되어 있고 각 메모리 셀이 데이터를 저장

★ JavaScript에서 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙힌 이름

★ 배열이나 객체 같은 자료구조의 경우 데이터를 관련 있는 여러 개의 값으로 그룹화해서 하나의 값처럼 사용하는 것으로 그 값의 주소가 아닌 그룹의 범위를 갖고 있는 주소를 참조한다.

 

JavaScript의 형변환

※ 데이터의 타입 확인 하는 방법 : console.log(typeof 식별자)

① 암시적변환

산술 연산자
- 기억할 것은 + 연산자만 다르다는 것
   + 연산자는 우선순위가 문자형이다. 하지만 나머지 - * / % 는 숫자형이 우선이라는 것.

비교 연산자
- 동치 비교의 경우(==)
   이때에는 falthy와 truthy의 개념을 알면 편하다. falthy와 falthy를 비교하는 것은 true이고 truthy와 truthy를 비교하는 것은 true로 값이 리턴된다.
★ 엄격한 동치 비교와의 차이점(===)
- 엄격한 동치는 데이터 타입의 형변환을 하지 않고 타입까지 비교하는 것으로 0==='0'은 falth를 가져온다.

② 명시적변환

→ 숫자

Number() : 정수형과 실수형의 숫자로 변환
parseInt() : 정수형의 숫자로 변환
알파벳은 0x 를 붙이면 숫자값으로 변환이 가능

 

parseFolat() : 부동 소수점의 숫자로 변환

→ 문자

String()
.toString() : 인자로 기수를 선택(몇진수로 설정할지)
.toFixed() : 인자값만큼 반올림 하여 소수점 표현
  ※ ex)
      const a = 123.42323
      a.toFixed(2) // 123.42

→ Boolean : Boolean()으로 감싸주면 된다. falthy 값들은 flase가 나오고 그 외의 값은 true를 반환

반응형

'자바스크립트 개념' 카테고리의 다른 글

var에서 let, const로 바뀐 이유  (0) 2022.11.18
깊은 복사와 얕은 복사  (0) 2022.11.18
스코프, 섀도잉  (0) 2022.11.12
혼공스(챕터5) 별도정리 : 타이머 함수  (0) 2022.11.12
혼공스(챕터5) 함수  (0) 2022.11.11
Comments