Web/Javascript

[Javascript]eval함수/문자열을 수식으로 인식하게하는 함수

꾹꾹이 2021. 10. 1. 16:28
728x90

eval()

 

eval()은 문자열을 코드로 인식하게 하는 함수다.

 

예를 들어

 

eval( '10+10' )

 

는 문자열 10+10가 아니라 계산한 결과 20이다.

 

 

간단한 예제로는

-------------------------------------------------------------------------------------------------

<script>

eval("x=10;y=20;document.write(x*y)");
document.write("<br>" + eval("2+2"));
document.write("<br>" + eval(x+17));

</script>

-------------------------------------------------------------------------------------------------

위의 출력의 예 :

200
4
27

 

나는 반복문으로 배열에 값을 밀어넣는 작업을 할 때 사용했다. 

 

B list의 값을 A배열에 넣는 작업을 하는데,

B.DELR_CD1 → A[0], 

B.DELR_CD2 → A[1],

B.DELR_CD3 → A[2]

...

 

이런 식으로 한칸씩 당겨서 옮겨야한다.

근데 저 DELR_CD1에서 1을 반복문의 반복인자를 이용해서 간단히 표현하고싶어서

이것저것 찾아보다가 eval 함수를 알게되었다.

 

예제로는,

 

var data = rec.getData();

var v = [];

        

        for(var i = 1i <9i++){

            dealers[i-1] = eval('data.DELR_CD'+i);

        }

        

 

더 알아보니 eval 함수가 보안에 굉장히 취약해서 절대 쓰지말라고 한다..

더 좋은 코드가 있으면 댓글로 자유롭게 알려주셔도 된다.