위코드-TIL-3 (JS-데이터 타입)

jin_sk·2020년 5월 27일
0

위코드

목록 보기
11/49

데이터 타입

자바스크립트에는 아래와 같은 데이터 타입이 있다

  • undefined
  • null
  • boolean
  • number
  • string
  • object
  • Symbol

  • undefined

    정의되지 않았다는 뜻이다

    (null과는 다른용도로 값이 없다는 것을 나타낸다)
    var, let, const를 사용해 변수를 정의할 때,
    초기화 하지 않았다면 변수에 undefined가 할당된다

    let msg;
    console.log(msg); // 결과 : undefined

    null

    비어있는 객체로 값이 없음을 나타낸다

    (의도적으로 값이 없음을 나타내며 '', "" 없이 사용한다)

    let obj = null;
    console.log(typeof obj); // 결과 : "object"

    null의 타입을 확인해보면 object라고 나오는데,
    아무것도 아닌 빈 객체를 가르키고 있어서 object라고 나온다


    boolean

    boolean은 true , false 두 가지 값을 가지고 있다

    ('', "" 없이 사용)
    스위치를 키거나(true) 끌 때(false),
    질문에 대한 답변으로 예(true) 또는 아니오(false)로 나오는 경우를 생각하면 된다

    다른 데이터 타입이 boolean으로 변환되는 경우를 살펴보면

    true
    1. 문자열 : 비어있지 않은 문자열은 모두 ture
    2. 숫자 : 0이 아닌 모든 숫자는 true
    3. rorcp : null이 아닌 모든 객체는 true

    false
    1. 문자열 : '', "" 비어있는 문자열은 false
    2. 숫자 : 0, NaN
    3. 객체 : null
    4. undefined : 값이 정의되지 않았으므로 false

    다른 데이터 타입이 boolean으로 변환되는 경우는 if 조건문에서 유용하게 사용되는데

    let result = "실행된다";
    if (result) {
      console.log(result);
    }
    
    // 결과 : "실행된다"

    위의 예제를 살펴보면 if 조건문에 변수 result를 넣었다
    변수 result는 "실행된다"라는 문자열을 값으로 가지고 있다
    비어있지 않은 문자열은 true이므로 조건이 블록의 조건이 실행된다

    반면에

    let result_2 = 0;
    if (result_2) {
      console.log("실행될까요?");
    } else {
      console.log("false니 실행이 안되지요");
    }
    
    // 결과 : "false니 실행이 안되지요"

    if 조건문에 변수 result_2를 넣었다
    변수 result_2는 0이라는 숫자를 값으로 가지고 있다
    숫자 0은 false 이므로 if 블록의 조건이 실행되지 않고,
    flase일때 실행되는 else 블록의 조건이 실행된다


    number (숫자)

    number(숫자) 데이터 타입은 -4, 8, 1516, 23.42 와 같이 소수를 포함한 모든 숫자를 말하며,
    '', "" 없이 숫자만 쓸 때 Number형으로 인식한다

    let num = 3.555;
    let num2 = '3';
    console.log(typeof num); // 결과 : "number"
    console.log(typeof num2); // 결과 : "string"

    숫자를 '', ""안에 넣으면 문자열이 된다


    string (문자열)

    string(문자열) 데이터 타입은 ''"" 감싸진 모든 표현을 뜻한다

    number, boolean 도 '' or ""로 감싸면 문자열이다

    let str = '';
    let str2 = "0"
    let str3 = "문자열";
    let str4 = 'false';
    console.log(typeof str);  // 결과 : "string"
    console.log(typeof str2);  // 결과 : "string"
    console.log(typeof str3);  // 결과 : "string"
    console.log(typeof str4);  // 결과 : "string"

    object (객체)

    객체는 key와 value의 조합으로 이루어진 데이터 이다 ({}로 묶인)

    객체는 연관된 데이터들의 그룹으로 생각하면 된다

    자바스크립트에서는 모든것이 객체이며 객체의 범주 안에서 세분화 된다고 볼 수 있다
    함수도 객체, 배열도 객체이다
    객체 인데 함수의 특성을 가지고, 객체인데 배열의 특성을 가진다라고 보면 된다


    typeof 연산자

    typeof연산자를 사용하여 각 데이터의 타입을 확인할 수 있다

    console.log(typeof null);
    console.log(typeof undefined);
    console.log(typeof 3);
    console.log(typeof "화이팅");
    console.log(typeof true);
    console.log(typeof []);
    console.log(typeof function() {});
    console.log(typeof {});

    결과

    "object"
    "undefined"
    "number"
    "string"
    "boolean"
    "object"
    "function"
    "object"

    0개의 댓글