본문 바로가기
개발관련

javascript 변수명 합치기, 키값에 문자를 붙여서 동적 할당하기

by 딸기별땅 2022. 7. 25.

우선 eval() 이라는 함수가 있는데

이 함수는 문자열 코드를 실행해버리고, 전역접근이 가능해 타인으로부터 악용될수 있으므로

절대!절대 쓰지말라고 MDN에서 못을 박길래 안쓰기로 했다. (난 잘 몰라 아무튼 그렇대..)

 

그래서 window객체에 변수를 생성해주는 방법이 있다. 

var aaa = window["aa"+"bb"];//변수명 생성
aaa = "text";//생성된 변수명에 text라는 문자 값 넣음
aabb += "123";

console.log("aabb의 값?", aabb);

결과는 text123이 출력된다. 

다만 window에서 생성하는것이므로 전역변수로 생성이 된다. 

 

이건 아직 테스트는 안 해봤는데, 지역변수로 생성하고 싶다면

콘솔에 window를 찍어서 함수나 클래스명을 확인해본뒤에

window.함수또는 클래스명["aa"+"bb"]와 같이 생성해주면 되지 않을까 싶다. 

 

 

같은맥락으로 오브젝트 "키"값을 문자를 붙여서 동적으로 할당할수가 있다. 

var gcObj = {};
//일반적인 키:값 할당
gcObj["fruit"] = "orange";

//키값에 문자를 더한 반복문
var keys = ["aa", "bb", "cc"];
for(val of keys){
	gcObj["add"+val] = "nyang";
}

콘솔에 출력하면 결과는 {addaa:"nyang", addbb:"nyang", ....,fruit:"orange"}로 출력된다. 

댓글