프로그래밍 기초 상식/JavaScript의 자료형과 JavaScript만의 특성

JavaScript의 자료형과 JavaScript만의 특성

흙으로만든형 2022. 7. 21. 20:00

자료형은 크게 숫자형,BigInt,문자형,Boolean 이 있으며

특수한 자료형인 객체,심볼형

그리고 null,undefined,Infinity,NaN 값 등이 있다.

 

JavaScript의 자료형

먼저 살펴볼 것은

1. 숫자형

  • 숫자형은 정수,소수점 등 number를 나타낼 때 사용
  • 나눗셈(/) ,곱셈(*),뺄셈(-),덧셈(+) 연산자를 주로 사용
  • 특수숫자값 NaN(Not a number) ,Infinity(말그대로 무한대),-Infinity(음의 무한대값) 도 있다.

isInteger()

데이터가 정수인지 판별하는 함수

parseInt() 

숫자로 구성된 문자열을 인자로 받아 정수형으로 값을 되돌려 준다.

즉, 인자(문자열)를 해석 지정된 진법의 정수형 값을 리턴

* 반대로 number->String형태로 바꿔주는 toString()이 있다.

구문에서 radix부분이 진법 2~36까지 가능 

2. BigInt

암호화 작업이나 정밀도가 높은 큰 숫자를 써야할 때 사용되는 BigInt

선언방식

  1. 숫자형 끝에 n붙이기
  2. 함수호출방식

출처 : https://taesung1993.tistory.com/19

3. 문자형

문자형을 쓸 때 " " 쌍따옴표, ' ' 따옴표, ` ` 백틱 사이에 원하는 문자를 쓴다.

4. Boolean 형

조건 판별하는 Boolean형

console창에 거짓시 찍히지 않는다.

참고 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Boolean

 

5. null,undefined

알수없는 ,비어있는 값이다.

delete()함수를 이용해 배열 안의 요소를 바꿔 null값으로 바꾸어줄수 있다.

index값 의 첫번째 위치에 해당하는 배열을 null값으로 바꾸어 주었다 delete는 제거가 아닌

바꾸어주는 개념으로 볼 수 있다. (위 콘솔창에 나와있듯 배열의 전체 길이나 값의 갯수는 바뀌지 않는다. )

 

6. 객체

객체는 특수한 자료형, 객체형을 제외한 다른 자료형들은 문자or숫자 한가지만 표현할 수 있어

원시 자료형 이라고도 부름, 객체는 복잡한 개체표현 가능

7. 심볼형 Symbol type

심볼은 유일한 식별자(identifier)를 만들고 싶을 때 사용

참고 https://ko.javascript.info/symbol#ref-129 ,https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol

 

JavaScript만의 특성

JavsScript(JS) 이하 JS는 인터프리터(Interpreter) 언어 이며

컴파일(Compile) 언어 에는 C,C++ 등이 있다.

 

컴파일 언어

  • Build Time : Source에 대한 기계어 번역
  • Run Time  :기계어 번역 후 기계로 전달.

인터프리터 언어

  • Build Time : 아무 일도 일어나지 않는다.
  • Run Time  :기계어 번역 후 기계로 전달.

컴파일은 Build Time시부터 소스를 번역하므로 Run Time시 속도가 인터프리터 보다 빠르다.

인터프리터 언어는 컴파일 언어보다 사람쪽에 더 가깝고 컴파일은 기계쪽에 더 가까운 언어이다.

 

JS의 특징 5가지

  • 인터프리터다
  • 동적 프로토타입 기반 객체지향 언어이다.
  • // 변수는 어떤 특정 type과 연결되지 않으며 모든 type값으로 할당 ,재할당 가능 ,부모와 자식간의 상속 가능 or 유전자를 물려주어 호출할수 있음.  
  • 동적 타입 언어이다.
  • 함수가 일급 객체이다.//First-class Object//참고 https://velog.io/@reveloper-1311/%EC%9D%BC%EA%B8%89-%EA%B0%9D%EC%B2%B4First-Class-Object%EB%9E%80
    1. 변수에 할당(assignment)할 수 있다.
    2. 다른 함수를 인자(argument)로 전달 받는다.
    3. 다른 함수의 결과로서 리턴될 수 있다.
    4. 함수를 데이터 (string,number,boolean,array,object, ...etc) 다루듯 할 수 있다.//변수,함수 할당 가능
  • 함수가 클로저를 정의한다 //클로저란 https://developer.mozilla.org/ko/docs/Web/JavaScript/Closures

* prototype 이해 : https://www.youtube.com/watch?v=wUgmzvExL_E