ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 자료형과 Typeof
    Let's Code/JavaScript 2021. 2. 28. 18:53

     

     

    • 동적 형식 (Dynamic data type)

    자바스크립트에는 8개의 자료형(Data type)이 있으며, 변수에 한 자료형이 지정된 후 다른 자료형의 값으로 변경할 수 있다. 이를 동적 형식 (Dynamic Data Type)이라 지칭한다. 

     

    • 자료형

    1) 숫자(Number): 자연수(integer)와 소수(floats)를 모두 포함한다. * (곱셈), / (나눗셈), + (덧셈), - (뺄셈)과 같은 연산자를 사용할 수 있다. Infinity(무한대), -Infinity(음의 무한대), NaN(컴퓨터 연산 오류)과 같은 특별한 숫자도 Number에 포함된다. 자바스크립트 내 수학 연산은 "안전safe"한데, 이는 아무리 불가능한 연산이라고 해도 NaN으로 처리될 뿐 스크립트를 정지시키지 않는다는 뜻이다.

     

    2) BigInt: 자바스크립트의 Number는 절대값이 2의 53승-1보다 큰 숫자를 포괄하지 않는다. 이렇게 절대값이 크면서 무한대가 아닌 특정 숫자를 포함하기 위하여 최근에 BigInt 타입이 생성되었다. 일반적으로 숫자 끝에 n을 붙여 BigInt임을 나타낸다. (현재 IE에서는 지원되지 않는다.)

     

    3) 문자열(String): 큰 따옴표" " 또는 작은 따옴표' ' , 그리고 역 따옴표` `안에 있는 값을 문자열(String)이라고 부른다. " " 이나 ' ' 는 "기본적인 따옴표simple quote"라고 부르며 차이점이 없으나, ` `(백틱, Back tick)의 경우 특별한 기능이 있다.  

     

    let name = "John";
    
    alert( `Hello, ${name}!` );
    alert( `the result is ${1 + 2}` );

    ` ` 를 사용하면 하나의 문자열 안에 변수나 연산을, 함수 등을 임베드할 수 있다. 임베드할 대상을 ${}! 안에 포함시키면 된다.

     

    4) 불린형(Boolean): true 또는 false의 두 가지 값만 가지고 있는 변수 타입이다. 

     

    let isGreater = 5 > 1;
    alert (isGreater );

    Boolean은 변수에 true나 false를 할당하여 생성할 수도 있지만, > 와 같은 비교 연산자를 통하여 생성할 수도 있다. 

     

    5) null: null은 상기 어떤 타입에도 포함되지 않는 독특한 타입으로, 존재하지 않거나 밝혀지지 않은 것을 가리킬 때 쓰인다. 

     

    6) undefined: undefined는 null과 같은 독특한 타입으로, 변수가 선언되었으나 아직 값이 지정되지 않았다는 것을 가리킬 때 쓰인다. 그러나 보통 한 변수 안에 값이 없거나, 아직 정의되지 않았다는 것을 따로 명기할 때는 null을 주로 사용한다. undefined은 아직 값을 정의하지 않았을 때의 디폴트 값으로 보통 쓰인다.  

     

    7) 객체(object): object을 제외한 다른 변수 타입은 한 변수에 타입만 지정할 수 있는 원시적인 (primitive) 변수이지만, object는 여러 데이터 타입을 저장할 수 있다. 함수와 배열도 객체 자료형에 포함된다.

     

    8) 심볼(symbol): 객체(object)에 대한 유일한 식별자를 만들고 싶을 때 사용한다. 

     

    • Typeof 연산자

    Typeof 는 연산자로 쓰일 수도 있고 (typeof x), 함수로 쓰일 수도 있으나 ( typeof(x) ) 결과는 동일하다.

     

    현재 typeof 연산자는 null 데이터 타입을 지원하지 않는다. (null을 객체로 분류하는데, 이는 명백한 오류이다.)

     

    또한 자바스크립트에는 function이라는 별도 데이터 타입이 없으나 (function은 객체로 분류된다), typeof 연산자는 함수를 객체와 구분되는 function으로 분류한다. 엄밀히 말해서 에러이나, 함수를 특정할 수 있으므로 편리하게 사용할 수 있다.

     

     

     

     


    출처: 모던 자바스크립트 (javascript.info/first-steps) 챕터 2의 1~6 파트

    댓글