Notice
Recent Comments
Recent Posts
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total
관리 메뉴

기록 > 기억

[JavaScript] var name = []; name의 자료형이 string? 본문

에러일지

[JavaScript] var name = []; name의 자료형이 string?

BY SON 2021. 9. 16. 00:49

● 에러 발생

var name = ["kim", "lee", "park"];
console.log(typeof name);
//기대값 → object , 출력값 → string

name 변수에 배열을 선언했는데 자료형이 string? object가 아니고??

숫자형도 넣어보고, boolean 값도 넣어봄

var name = 123;
console.log(typeof name);
//기대값 → number 그런데 출력값 → string

var name = true;
console.log(typeof name); 
//기대값 → boolean 그런데 출력값 → string

어떤 데이터를 넣어도 자료형이 string ...

 

● 에러 발생 원인

window.name 속성 때문!! 

글로벌 영역에서 name 이라는 변수를 사용하면 window.name 으로 처리 됨

window.name 은 toString 메서드를 사용하여 저장된 모든 값을 문자열로 바꿈!

그래서 어떤 타입의 데이터를 넣어도 string 타입을 반환 한거였음

 

● 해결 방안

① 변수명 name 말고 다른걸로 변경

var names = ["kim", "lee", "park"];
console.log(typeof names);
//기대값 → object , 출력값 → object

② 변수를 let 으로 선언

let name = ["kim", "lee", "park"];
console.log(typeof names);
//기대값 → object , 출력값 → object

 

Comments