🗃️javascript/이론정리

기본 자료형, 객체 자료형

하얀성 2023. 9. 25. 21:00

기본자료형에는 3가지가 있다.(숫자, 문자열, 불)

 

기본 자료형은 변수가 참조하더라도 주소가 아닌, 실제 값만을 할당함.

 

이 말은 즉슨, 그 기본자료형을 참조하고 있는 변수값을 바꾸더라도, 기본 자료형의 값은 바뀌지 않음.

아래 링크에 예시를 자세히 들어놓음.

https://elecch.tistory.com/432

 

1-9 A를 # 으로[배열은 참조타입, 문자열은 원시타입]

문제는 없는 코드다. 하지만 gpt가 리팩토링하니 더 간단하게 만들수 있다. 바로. includes는 필요가 없다는것. 그저 바꾸기만 하면됨. function solution(s){ if(s.includes('A')) return s.replaceAll('A','#') } let str="

elecch.tistory.com


기본 자료형은 이렇게 손쉽게 나타낼 수 있다.

let number = 273;
let string = '안녕하세요'
let boolean = true;

console.log(number) // 273
console.log(string) // 안녕하세요
console.log(boolean) // true

 


이 기본형들은 각 본인의 클래스를 가지고 있음. 이를 통해 자신들과 같은 타입의 것들을 만들어낼 수 있음.

let number = new Number('273');
let string = new String(1234567)
let boolean = new Boolean(true);

console.log(number)
console.log(string)
console.log(typeof number) // object
console.log(typeof string) // object
console.log(typeof boolean) // object

기본 자료형과 객체 자료형 모두 속성과 메서드를 사용할 수 있음.

기본 자료형은 속성, 메소드를 사용할 때 기본 자료형이 자동으로 '객체'로 전환되기에 사용 가능한것임.


'클래스기본형.prototype '추가 X => 출력 실패.

let pri = 273;

pri.method = function () {
  // 객체가 아닌 기본 자료형은 메소드, 속성선언불가
    return 'Primitive Method';
};
   
console.log(pri.method());


'클래스기본형.prototype '추가 => 출력 성공.

let pri = 273;

Number.prototype.method = function () {
  // 객체가 아닌 기본 자료형은 메소드, 속성선언불가
  // 그러니 객체모양으로 잠깐 변신.
    return 'Primitive Method';
};
   
console.log(pri.method());

pri는 Number 타입의 인스턴스입니다. 이 말은 pri가 Number.prototype에 정의된 메서드를 사용할 수 있음을 의미한다.