ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 타입
    JavaScript 2022. 2. 14. 14:14

    데이터 타입

      • 타입(data type)이란 프로그램에서 다룰 수 있는 값의 종류를 의미한다.
      • 자바스크립트에서는 여러 가지 형태의 타입을 미리 정의하여 기본 타입으로 제공하고 있다.
      • 자바스크립트의 기본 타입은 크게 원시 타입객체 타입으로 구분할 수 있다.

     

    원시 타입

    • 숫자(number)
      자바스크립트는 다른 언어와 달리 정수와 실수를 따로 구분하지 않고 모든 수를 실수로 표현하며, 매우 큰 수나 작은 수를 표현할 경우 e 표기법을 사용할 수 있다.
      let firstNum = 10 // 소수점을 사용하지 않은 표현
      let secondNum = 10.00 // 소수점을 사용한 표현
      let thirdNum = 10e6 // 10000000
      let fourthNum = 10e-6 // 0.00001
      

      1. 숫자를 변수에 담기
      let num = 1

      2. 숫자 연산하기
      - 모든 숫자는 덧셈(+)/뺄셈(-)/곱셈(*)/나눗셈(/)등의 연산을 할 수 있다.

      3. 연산 우선 순위
      - 수학에서 배운 것과 동일한 방식으로 곱하기와 나누기가 더하기와 빼기보다 더 우선시 된다.
      let result = 3 + 7 * 2
      console.log(result) // 17​

      4. 비교 
      - 부등호를 이용하여 숫자의 크고 작음을 비교할 수 있다.
      let result1 = 2 > 7
      console.log(result1) // false
      
      let result2 = 3 >= 3
      console.log(result2) // true​

      5. 같은 수 판별
      - 일치연산자 (===, !==) 를 이용하여 같은 수인지에 대한 정보를 확인할 수 있다.
      let one = 5
      let two = 5
      
      console.log(one === two) // true​

      6. 증가시키기
      a += 1  // a = a + 1
      a += 2  // a = a + 2
      a -= 1  // a = a - 1
      a *= 3  // a = a * 3
      a /= 2  // a = a / 2 
      
      a++     // a = a + 1
      a--     // a = a - 1
      a**     // 유효하지 않은 코드
      a//     // 유효하지 않은 코드​

      let a = 1
      a = a + 1​
       → 첫번째 줄 : a라는 변수를 만들고 1이라는 값을 대입해주고 있다.
      → 두번째 줄 : 등호를 기준으로 오른쪽의 값을 왼쪽의 변수에 대입하고 있다.(오른쪽의 값을 먼저 연산하게 되는데 오른쪽의 값은 1 + 1로 결국 2라는 결과가 도출된다. 그 뒤, 오른쪽의 변수 a에 2라는 값을 대입한다.)

      7. 유효하지 않은 숫자 연산
      - NaN : Not a Number라는 의미를 가진 특수한 값이다. 유효하지 않은 숫자 연산을 실행했을 때 생성된다.
      let a = 0
      let b = 0
      let c = a / b
      
      console.log(c)	// NaN​

      - 만약 어떤 값이 NaN 인지 판별하고 싶다면 아래와 같이 isNaN 라는 함수를 사용하여 판별이 가능하다.
      let a = isNaN(3)
      console.log(a) // false
      
      let b = 10;
      let c = isNaN(b)
      console.log(c) // false
      
      let d = NaN
      let e = isNaN(d)
      console.log(e) // true​

      8. 무한대 표현하기
      let pInf = 10/0			// 양의 무한대
      console.log(pInf)	  	// Infinity
      
      let nInf = 10 / -0	 	// 음의 무한대
      console.log(nInf)	  	// -Infinity​

      9. 숫자 판별하기
      JavaScript 에서 제공하는 기능 중 typeOf 라는 연산자가 있다. 이 연산자는 어떤 종류의 값인지를 판단할 때 사용한다.


    • 문자열 (string)
      큰따옴표("")나 작은따옴표('')로 둘러싸인 문자의 집합을 의미한다.
      let firstStr = "안녕" // 큰따옴표를 사용한 문자열
      let secondStr = '안녕' // 작은따옴표를 사용한 문자열​

      숫자와 문자열을 더할 경우 숫자를 문자열로 자동 변환하여 두 문자열을 연결하는 연산을 수행한다.
      let num = 10
      let str = "JavaScript"
      console.log(num+str) // 10JavaScript​

      1. 문자열 붙이기
      숫자들을 더할 때와 마찬가지로 +기호를 사용하여 아래와 같이 문자열을 붙일 수 있다.
      let s1 = "something"
      let s2 = "else"
      let result = s1 + s2
      
      console.log(result) // "somethingelse"​

      2. 문자열 비교
      let s1 = "abc"
      let s2 = "abc"
      
      let result1 = s1 === s2  // s1과 s2가 같은지 확인하고 그 결과를 result1 변수에 담는다.
      console.log(result1) // true
      
      
      let s3 = "abc "  // 공백이 붙어있다.
      let s4 = "abc"
      
      let result2 = s3 !== s4  // s3과 s4가 다른지 확인하고 그 결과를 result2 변수에 담는다.
      console.log(result2) // true​

      3. 문자열 길이
      .length 를 이용하여 모든 문자열은 그 길이에 대한 정보를 알 수 있다.
      let str1 = "abc"  // 3개의 텍스트를 포함하고 있는 문자열
      console.log(str1.length) // 3
      
      let str2 = "   "  // 공백 3개
      console.log(str2.length) // 3
      
      console.log("graph-ql".length) // 8​

      4. 문자열 인덱스 (index)
      문자열 종류의 값들은 인덱스 정보를 이용할 수 있다. 인덱스라는 정보는 위치/순서를 의미하는 것과 비슷하다고 생각하면 된다.
      let str = "abcdef"
      console.log(str[0]) // "a"
      
      console.log("cde"[2]) // "e"​

      5. 문자열 메서드
      '6'.repeat(3);
      'hi hizini'.includes(' hizini');
      'what are you doing?'.startsWith('what ');
      'I am doing FiNe'.endsWith('iNe');
      'Are you sure?'.indexOf(' yo');
      'Yeah I am sure'.slice(2, 5);
      'I?doubt?that'.split('?');
      'Why would you doubt my word?'.split('');
      'You hAve BeEn DiSHonest'.toLowerCase();
      'No wAy!'.toUpperCase();​


    • 불리언 (boolean)
      참(true)과 거짓(false)을 표현한다.
      let num1 = 10
      let num2 = 11
      console.log(num1 === num2) // false​

                          - 주로 조건문에 자주 사용하며 00nullfalseNaNundefined빈 문자열 ("")은 false 로 간주된다.

     



    • 심볼(symbol) _ ECMAScript 6부터 제공
      유일하고 변경할 수 없는 타입으로, 객체의 프로퍼티를 위한 식별자로 사용할 수 있다.
      주로 이름의 충돌 위험이 없는 유일한 객체의 Property Key를 만들기 위해 사용한다.
      let sym = Symbol('symbol') // symbol 타입​


    • null과 undefined
      • null
        null이란 object 타입이며, 아직 '값'이 정해지지 않은 것을 의미한다.
        JavaScript는 대소문자를 구별하므로 null은 Null,NULL 등과 다르다.
        타입을 나타내는 문자열을 반환하는 typeOf 연산자로 null 값을 연산해보면 null이 아닌 object가 나오는데, 이는 자바스크립트 설계상의 오류이다.
        따라서 null타입을 확인할 때는 typeOf 연산자 대신 일치 연산자(===)를 사용하여야 한다.
        let foo = null
        console.log(typeof foo === null) // false​
      • undefined
        undefined란 null과 달리 '타입'이 정해지지 않은 것을 의미한다.
        undefined는 초기화되지 않은 변수나 존재하지 않는 값에 접근할 때 반환된다.
        let num // 초기화하지 않았으므로 undefined 값을 반환
        let str = null // object 타입의 null 값
        typeof num2 // 정의되지 않은 변수에 접근하면 undefined 값을 반환​
    💡 null과 undefined는 동등 연산자(==)와 일치 연산자(===)로 비교할 때 결괏값이 다르기 때문에 주의해야 한다!
    null == undefined // true
    null === undefined // false​
    - null과 undefined는 타입을 제외하면 같은 의미지만 타입이 다르므로 일치하지는 않는다.

     

    객체 타입 (Object type, Reference type)

    • 객체는 데이터와 그 데이터에 관련한 동작(절차, 방법, 기능)을 모두 포함할 수 있는 개념적 존재이다.
    • 다시 말해, Property와 Method를 포함할 수 있는 독립적인 주체이다.
    • JavaScript는 객체 기반의 스크립트 언어로 JavaScript를 이루고 있는 거의 모든 것이 객체이다.
    • ⇒ 원시 타입을 제외한 나머지 값들 (배열, 함수, 정규표현식 등)은 모두 객체이다.
    • 객체는 참조에 의한 전달 (pass-by-reference) 방식으로 전달된다.
    let num = 10 //숫자
    let string = '안녕하세요' //문자열
    let str // undefined
    

     

     

     

    반응형

    'JavaScript' 카테고리의 다른 글

    논리 연산자  (0) 2022.02.21
    Template literals  (0) 2022.02.21
    var, let, const 차이  (0) 2022.02.14
    페이지 처리  (0) 2022.02.11
    이벤트 핸들러 (EventHandler)  (0) 2022.02.11

    댓글

Designed by Tistory.