본문 바로가기
JavaScript/JavaScript with Error

[해결 방법] TypeError: Cannot create property '...' on string '...'

by HJ0216 2023. 10. 18.

👉 기본 환경

- Language: JavaScript

- IDE: VS Code

 

 

⌨️ 코드

1
2
3
4
5
let str = "Hello";
str.test = 5;
 
alert(str.test);
 
 

 

 

🖨️오류

1
2
TypeError: Cannot create property 'test' on string 'Hello'
 
 

 

 

📡 원인

* 엄격 모드

    - 래퍼 객체를 수정 시, 에러가 발생

* 비엄격 모드

    - 래퍼 객체에 properties 'test' 추가 → 래퍼 객체 삭제 → properties 'test'를 찾을 수 없음

 

🚨 원시값은 추가 데이터를 저장할 수 없음

 

 

📰 해결 방법

1
2
3
4
5
let str = new String("Hello"); // 문자열을 객체로 변환
str.test = 5;
 
alert(str.test);
 
 

String을 객체로 변환

 

⭐ 생성자를 통해 원하는 타입의 "래퍼 객체"를 직접 만들 수 있으나, 문자열은 일반적으로 기본 데이터 타입 권장

 

cf. String("Hello")

    - 인 수를 원하는 형의 원시값(문자열, 숫자, 불린 값)으로 바꿔주는 역할

 

 

 

📚 참고 자료

 

원시값의 메서드

 

ko.javascript.info