우선 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"}로 출력된다.
'개발관련' 카테고리의 다른 글
mongodb dump 임시 기록 (1) | 2022.09.24 |
---|---|
vscode 터미널 세션 끄기(버벅임 느려짐 해결) (0) | 2022.08.17 |
Error: listen EACCES: permission denied 0.0.0.0:80 정리 (0) | 2022.06.01 |
mongodb admin/db별 계정설정 (0) | 2022.05.13 |
Bootstrap5에서 datetimepicker를 사용하자!!!!악!!! (0) | 2022.04.20 |
댓글