티스토리 뷰

JavaScript/기본

004. JavaScript : 자료형

따강아지 2022. 3. 16. 00:34

C, Java와 같은 언어는 변수의 데이터 형식은 정적 타입입니다. 즉 변수를 선언할 때 어떤 데이터 형식을 사용하는지 선언을 해야 하지만 JavaScript, Python은 변수에 데이터를 대입할 때 동적으로 할당이 됩니다. 다른 말로 이야기하면 변수에 대입하는 값에 따라서 변수의 테이터 형식이 변한다는 이야기입니다.

JavaScript 데이터 형식

 

1. 기본 자료형 

  • 문자열(String) : 문자 데이터를 문자열로 저장하는 것으로 작은따옴표 또는 큰 따옴표를 사용합니다.
  • 숫자(Number) : 숫자를 나타내는 값을 데이터로 저장합니다, 범위는  -2**53 ~ 2**53
  • bigInt : 숫자(Number)의 범위를 벗어나는 값으로 숫자 뒤에 n을 붙입니다.
  • 불린 : true, false를 뜻하는 단일 비트 저장하는 것으로 JavaScript에서는 false(거짓)은 0, null, undefined, NaN, ""이고 나머지 값은 모두 True(참)입니다.
  • undefined은 변수가 선언만 되고 값을 할당하지 않은 상태를 의미합니다.
  • null : null로 String Empty와 틀린 것으로 의미 없는 값을 말합니다.

2. 참조 자료형 

  • 배열 : 분리 구분된 일련의 데이터 요소들로 모두 하나의 변수명으로 저장하는 것으로 0부터 시작하며 배열 요소에 접근하거나 저장하기 위해서 인텍스(array [index] : index : 요소 위치 )를 사용합니다.
  • 객체 리터럴 : key, value로 정의되어 있는 데이터로 object.property로 접근할 수 있습니다.
  • Template literals : ` ${변수}`

var myString = '문자';
var myNumber = 1;
var myBoolean = true;
var myArray = ['a','b','c'];
var myObject = {"name":"홍길동", "age":"19"};
var myNull = null;  


console.log(typeof myString, myString);                   // string 문자
console.log(typeof myNumber, myNumber);                   // number 1
console.log(typeof myBoolean, myBoolean);                 // boolean true
console.log(typeof myArray, myArray, myArray[0]);         // object [ 'a', 'b', 'c' ] a
console.log(typeof myObject, myObject, myObject["name"]); 
     // object { name: '홍길동', age: '19' } 홍길동
console.log(typeof myObject, myObject, myObject.name);    
     // object { name: '홍길동', age: '19' } 홍길동
console.log(typeof myNull, myNull); 
     // object null

기본 자료형은 typeof로 확인하면 기본 자료형 타입으로 표시되지만 참조 자료형은 모두 Object로 표시됩니다.


1. boolean에서 false

JavaScript에서 거짓(false)는 null, 0, "", undefined, NaN입니다. 그외는 모두 참 입니다.

let a = 10;
a ?  console.log("참") : console.log("거짓");        // 참

null ?  console.log("참") : console.log("거짓");     // 거짓 ( NULL )
0 ?  console.log("참") : console.log("거짓");        // 거짓 ( 숫자 : 0 )
"" ?  console.log("참") :  console.log("거짓");      // 거짓 ( 빈문자열 )

let b;
b ?  console.log("참") : console.log("거짓");        // 거짓  ( undefined )

let c = "a" / 2;
c ?  console.log("참") : console.log("거짓");        // 거짓  ( NaN )

3. 동적 자료형 할당

변수 variable에 "문자"를 대입하여 String Type이지만 동일 변수에 다른 값을 저장하면 변수의 데이터 타입이 변경되고 있습니다. 마지막은 Number로 문자열의 문자를 가지고 오는 함수 charAt()에서 오류가 나게 됩니다. 프로그램 작성 시 주의가 필요합니다.

let variable = '문자';
console.log(variable.charAt(0))
console.log(`value : ${variable}, types: ${typeof variable}`); // value : 문자, types: string

variable = 10;
console.log(`value : ${variable}, types: ${typeof variable}`); // value : 10, types: number

variable = variable + '20';
console.log(`value : ${variable}, types: ${typeof variable}`); // value : 1020, types: string

variable = variable / '20';
console.log(`value : ${variable}, types: ${typeof variable}`); // value : 51, types: number

console.log(variable.charAt(0)) // Uncaught TypeError: variable.charAt is not a function

연관 : 불변값과 가변값

 

2. 불변값, 가변값은 무엇을 의미 할까 ?

언어 관련 도서를 보거나 블로그를 보면 불변, 가변이라는 단어가 나옵니다, 이 단어의 의미는 무엇일까요? 가변, 불변의 의미를 알기 위해서는 변수에 저장된 데이터가 어떻게 메모리에서 관리

hyomee.tistory.com

연관 : 형변환

 

006. JavaScript : 형변환

변수에 할당된 값을 다른 자료형으로 변환하는 것을 의미하며 타입 캐스팅이라 합니다. 일반적으로 변수를 선언하고 데이터를 대입하면 그 시점에 변수의 타입이 결정됩니다, 그 후 프로그램에

hyomee.tistory.com

 

'JavaScript > 기본' 카테고리의 다른 글

006. JavaScript : 형변환  (0) 2022.03.17
005. JavaScript : 배열  (0) 2022.03.16
003. JavaScript : let, const  (0) 2022.03.06
002. JavaScript : 변수 var  (0) 2022.03.01
001. Javascript 란  (0) 2022.03.01