JS 타입

지식저장공간·2023년 3월 2일
0

JS

목록 보기
2/16
post-thumbnail

JS 타입

타입(data type)이란 프로그램에서 다룰 수 있는 값의 종류를 의미한다.
자바스크립트에서 기본타입은 크게 원시 타입과 객체 타입으로 구분할 수 있다.

원시 타입

  1. 숫자
  2. 문자열
  3. 불리언
  4. undefined

1. 숫자

자바스크립트는 다른 언어와는 달리 정수와 실수를 따로 구분하지 않고, 모든 수를 실수 하나로만 표현합니다.

const firstNum = 10;
const secondNum = 20.0;

2. 문자열

자바스크립트에서 문자열은 큰따옴표("")나 작은따옴표('')로 둘러싸인 문자의 집합을 의미한다.
큰따옴표는 작은따옴표로 둘러싸인 문자열에만 포함될 수 있으며, 작은따옴표는 큰따옴표로 둘러싸인 문자열에만 포함될 수 있다.

const firstStr = "문자열1";
const secondStr = '문자열2';

const str = "나의 이름은 '홍길동'이다.";

자바 스크립트에서는 숫자와 문자열을 더할 수도 있다.
이럴 경우에 자바스크립트는 숫자를 문자열로 자동 변환하여, 두 문자열을 연결하는 연산을 수행합니다.

const firstNum = 10;
const firstStr = "문자열";
const result = firstNum + firstStr;

console.log(result); //10문자열

3. 불리언

불리언 값은 참(true)과 거짓(false)을 표현한다.
자바스크립트에서 불리언값은 true와 false를 사용하여 나타낼 수 있다.

const firstNum = 10;
const secondNum = 20.0;

const check = firstNum == secondNum; //false

4. null과 undefined

자바스크립트에서 null이란 Object 타입.
즉, 타입은 오브젝트이고 아직 '값'이 정해해지지 않은 것을 의미한다.

undefined란 null과는 달리 '타입'이 정해지지 않은 것을 의미한다.
따라서 자바스크립트에서 undefined는 정의되지 않거니, 초기화되지 않은 변수에 접근할 때 반환된다.

const str = null; //object 타입의 null, 값이 정해지지 않았다.

const num; //초기화하지 않았으므로 undefined 값을 반환한다.
typeof secondNum; //정의되지 않은 변수에 접근하면 undefined 값을 반환

객체 타입

  1. 객체(Object)
    자바스크립트의 기본 타입은 객체이다. 객체는 여러 프로퍼티나 메소드를 같은 이름으로 묶어 놓은 일종의 집합체. 주로 JSON(JavaScript Object Notation)으로 불린다.
// 객체의 생성
const dog = {
 "name" : "해피",
  "age" : 3
};


//오브젝트 dog에 "name", "age" 필드가 존재한다.

console.log(dog.name); // 해피
console.log(dog.age); // 3

타입 변환

타입 변환

자바스크립트는 타입 검사가 매우 유연한 언어이다.
자바스크립트의 변수는 타입의 정해져 있지 않으며, 같은 변수에 다른 타입의 값을 다시 대입할 수 있다.

let num = 20; // Number 타입의 20
num = "이십"; // String 타입의 "이십"

// 한 변수에 타입과 상관없이 여러 번 값을 대입할 수 있다.
// 자바의 경우 int에 숫자만 대입 가능하지만, 자바스크립트의 타입은 유연하다.

묵시적 타입 변환

자바스크립트는 특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면, 자동으로 타입을 변환하여 사용한다. 즉, 문자열 값이 오길 기대하는 곳에 숫자 타입이 오더라도 자바스크립트는 알아서 숫자를 문자열로 변환하여 사용한다.

10 + "문자열"; // 문자열 연결을 위해 숫자10이 문자열로 변환된다. > 10문자열

"3" * "5"; // 곱셈 연산을 위해 두 문자열이 모두 숫자로 변환된다. > 15

10 - "문자열"; 
// NaN(Not a Number) 뺄셈 연산은 문자열이 숫자로 변환되어야한다. 
// 하지만, 숫자로 변환될수 없는 문자열은 타입 변환이 불가능하다.

명시적 타입 변환

자바스크립트에서는 묵시적 타입 변환을 많이 사용하지만, 명시적 변환도 제공한다.

  1. Number()
  2. String()
  3. Boolean()
  4. Object()
  5. parseInt()
  6. parsrFloat()
Number("10"); // 숫자 10
String(true); // 문자열 "true"
String(false); // 문자열 "false"
Boolean(0); // 불리언 false
Boolean(1~); // 불리언 true
Object(3) // new Number(3)와 동일한 결과로 숫자 3        

변수

변수(variable)란 데이터를 저장할 수 있는 메모리 공간을 의미하며, 그 값이 변경될 수 있다.
ES5(var), ES6(const, let)

변수의 선언과 초기화

var x = 10;

const y = 20; //const는 불변을 의미한다. 자바의 final
y = 30; //에러 발생

let z = 30;

//배열을 선언할때는 대괄호를 사용한다.
//자바는 {} 중괄호를 사용!
const arr = [1,2,3,4,5];

출처 : tcp school.com

profile
발전하는 개발자가 꿈입니다. 지식을 쌓고 지식을 활용해 목표 달성을 추구합니다.

0개의 댓글

관련 채용 정보