TIL archiving ···.ᐟ/JavaScript + TypeScript

[노트내용정리] 변수의 타입 - 원시타입

dayoung-archive 2024. 8. 27. 23:18

 

 변수의 타입은 크게 원시타입, 객체타입으로 나누어지며 다양한 데이터를 용도에 맞게 쓰기 위해서 사용한다.

* 타입체크는 typeof라는 함수보다는 Object.prototype.toString.call 함수를 사용하자!

 

 

📌 원시타입 (Primitive Types)

  • 실제 데이터 값을 저장하는 타입
  • 가리키고 있는 값의 변경이 불가능하다. (= 불변 immutable)
  • 콜스택저장된다.
let a = 'HELLO';
console.log(a[0]); // H
a[1] = 'J';
console.log(a[1]); // E. J로 바뀌지 않는다

 

 

1. String (문자형 데이터)

  • ' ' (작은따옴표) 혹은 " " (큰 따옴표)를 사용해 문자를 나타낸다.
  • 순서가 있고(이 순서를 index라고 한다) 0번부터 시작하며 띄어쓰기도 문자로 취급한다.
  • length라는 속성이 있다. length 속성을 통해 문자열의 길이를 구할 수 있다.
let myName = "Dayoung"
console.log(myName.length); // 7
  • 문자열은 + 연산자로 연결될 수 있다.

  • 문자열 메서드
    * indexOf() : 문자열 안의 특정한 문자를 검색해 문자의 순서(index)를 반환한다.
      검색할 문자와 검색을 시작할 인덱스 번호 두 가지를 인자로 전달.

    * replace() : 문자열에서 일치하는 첫번째 문자열을 찾고, 대체해 새로운 문자열을 반환한다.
      첫 번째는 찾아야하는 문자열, 두 번째 인자는 대체할 값을 인자로 전달.

    * slice() : 문자열의 일부분을 복사하여(썰어서) 새로운 문자열을 반환한다.
    시작 인덱스와 종료 인덱스를 인자로 전달.

참고: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String 

 

 

 

2. Number (숫자형 데이터)

  • 숫자는 여러가지 연산이 가능하다.
//산술 연산자(arithmetic operator)
console.log(1 + 2)
console.log(12 * 7)
console.log(7 / 9)
console.log(7 % 5)  //나머지값


// 할당 연산자(assignment operator)
let a = 2
a = a + 1
a += 1
a = a - 1
a -= 1
a = a % 1
a %= 1


// 비교 연산자(comparison operator)
const b = 1
const c = 1

console.log(b === c)  // b와 c가 같은 지 비교해줌

// 일치연산자
function isEqual(x, y) {
  return x === y
}

console.log(isEqual(1, 1)) //true
console.log(isEqual(2, '2')) //false

 

참고: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number 

 

 

 

3. Boolean (논리자료형)

  • 1byte (비트는 전구. on off만 있음. 0과 1만 존재)
  • true 혹은 false 값을 반환
// 관계연산자: 두 개의 값을 비교하여 true 또는 false 값을 반환
let x = 5;
let y = 10;
let z = 5;

console.log(x > y); // false
console.log(x < y); // true
console.log(x >= z); // true



// 논리 연산자(logical operator)
const a = 1 === 1
const b = 'AB' === 'AB'
const c = true

console.log(a)
console.log(b)
console.log(c)

console.log('&&: ', a && b && c) 
//콘솔에 출력하는 내용이 많아지면 '&&: ', 처럼 구분가능한 문자로 콘솔에 출력되는 log를 관리해줌.
// * AND 연산자 : 모든 값이 true이어야 함. 하나라도 false값이 있으면 결론은 false가 됨.

console.log('||: ', a || b)
// * OR 연산자 : 하나라도 true값이 있으면 결론은 true가 됨.

console.log('!: ', !a)
// * NOT 연산자 : 특정한 데이터의 반대값이 출력됨. a가 true => false, a가 false => true 출력.
💡 NOT연산자를 2번 써주면(!!) Boolean 타입이 되어서 true인지 false인지 확인할 수 있다.
(!!a && true) 이런식으로 써주는 것을 권장

 

4. undefined

  • 변수 값이 할당되지 않은 경우.
  • 변수에 어떤 값도 할당되지 않았거나, 정의되지 않은 변수에 접근하려 할 때 undefined가 반환.
  • 자바스크립트가 비어있다고 정의하는 것.
let a;
console.log(a); // undefined

 

5. null

  • 값이 없음을 나타낸다.
  • 개발자가 의도적으로 비어있다고 정의하는 것.
  • null을 사용해 변수에 값을 지정하지 않도록 초기화 할 수 있다.

 

 

 

[노트내용정리] 변수

📌 변수란? 변수 (variable) : 데이터를 담는 공간. 데이터를 담아주기만 할 뿐,  담겨져 있는 실체는 변하지 않는다.변수는 화살표로 값을 가르킨다고 생각하자! (변수 → 값) 변수는 선언 ➡️ 

dayoung-archive.tistory.com

 

[노트내용정리] 변수의 타입 - 객체타입

📌 객체타입 (Object Types) 원시타입과 달리 값을 변경할 수 있다.여러개의 데이터를 변수 하나에 저장할 수 있기 때문에 데이터 추가, 제거, 검색, 정렬 등다양한 작업을 수행 가능하도록 메서드

dayoung-archive.tistory.com