eval() 기능함수는 Javascript 코드가 맞는가 틀린가를 검정하고 수행한다.

eval(jsString)
인수
eval() : (검정, 수행 기능함수)
필수적인 인수로 최상위 내장 기능함수이다.
jsString : (검정할 문자열)

선택적인 인수로 기능함수의 인수(argument)로 주어진 코드 문자열로 검정의 대상이 된다.

jsString은 선택적이기는 하지만, 없으면 값 "undefined"을 반환한다.

인수는 Javascript 코드가 아니고 문자열임에 주의하라.

설명

검정하는 순서는

  1. 제공된 jsString 문자열이 Javascript로 유효한가를 먼저 검정한다.
  2. Javascript 코드로서 해석하기 위하여 파싱(parse)한다.
  3. eval() 기능함수는 파싱된 내용에서 Javascript 문장 코드를 발견하면, 그 내용을 수행하고,
  4. 그 결과값이 있으면, 그 값을 반환한다(return).
특기

jsString은 Javascript 문장, 복수의 문장등이며 개체(object)의 변수와 속성(property)을 가질 수 있다.

문자열로 구성된 Javascript 문장을 직접 실행시키는데 유용하다.



function
eval 기능함수
eval</b> 기능함수
예제
이전페이지로페이지 맨위로페이지 맨아래로

간단한 eval() 검정 예제

12345
<SCRIPT>
eval('document.write(12345)'); // 문장 수행, 결과 출력
eval('document.write("<BR>")'); // 문장 수행, 결과 출력(줄바꿈)
</SCRIPT>

eval()로 복수 문장 검정 예제

덧셈 계산=6912 | 6912
문자열 결합=12345678
<SCRIPT>
eval('number1=1234; number2=5678; document.write("덧셈 계산="+(number1+number2)+" | ")');
  // 여러 문장 수행(계산), 결과 출력 수행, 수치가 문자열과 결합하면 문자열이 되므로 괄호로 묶어 주어야 계산된다.
eval('number1=1234; number2=5678; document.write(number1+number2)');
  // 여러 문장 수행(계산), 결과 출력 수행, 문자열과 결합하지 않으므로 괄호가 없어도 계산된다.
eval('number1=1234; number2=5678; document.write("<BR>문자열 결합="+number1+number)');
  // 여러 문장 수행(문자열 결합), 결과 출력 수행
</SCRIPT>

Infinity, NaN 검정 예제

Infinity
NaN
<SCRIPT>
eval('number1=1234; number2=5678; document.write(Math.pow(number1,number2)+"<BR>")');
  // 여러 문장 수행(계산), 결과 출력 수행, 결과 수치가 너무 커서 부동 소수점으로 표시 할 수 없다.
eval('number1="1,234"*100; document.write(number1)');
  // 여러 문장 수행, 결과 출력 수행, 결과는 문자열과 수치를 곱하였으므로 수치가 아니다.
</SCRIPT>

for 루프 문장 검정 예제

Loop A : 1
Loop A : 2
Loop A : 3
Loop A : 4
4 Loop B
<SCRIPT>
eval('for(i=1;i<5;i++){ document.write("Loop A : "+i+"<BR>")}'); // 여러 문장 수행, 결과 출력(위 4줄) 수행
document.write(eval('for(i=1;i<5;i++){ i+" Loop B<BR>"}')); // 여러 문장 수행, 결과 출력, 모두 수행하나 마지막 한줄만 출력
</SCRIPT>

function
eval 기능함수
eval</b> 기능함수
견본
이전페이지로페이지 맨위로페이지 맨아래로

eval 기능함수로 Date, for 루프 예제

Wed Jun 25 2025 23:50:47 GMT+0000 (Coordinated Universal Time) = Wed Jun 25 2025 23:50:47 GMT+0000 (Coordinated Universal Time)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
따옴표 없는 eval(for (i=0;i<20;i++) document.write(i+", "))는 오류가 발생된다.
<SCRIPT>
eval('document.write(mydate=new Date())'); // Date 개체를 포함하는 mydate 변수를 새로 만든다.
document.write(' = '+mydate);

eval('for (i=0;i<20;i++) document.write(i+", ")'); // for 루프를 수행한다.
// eval(for (i=0;i<20;i++) document.write(i+", ")) 문자열이 아니므로 오류 발생
</SCRIPT>

onClick 이벤트로 for 루프 기능함수를 호출하여 검정하는 예제

클릭하여 결과를 보라.
<SCRIPT>
function checkit(){
  var str=''; // 문자열 변수 선언
  var sqr=cum=0; // 수치 변수 선언
  for (i=1;i<=10;i++){ // 1에서 10까지 1씩 증가시키는 루프
    sqr=i*i;   // 제곱
    cum+=sqr;  // 제곱값 누적
    str+='['+i+']의 제곱값='+sqr+' 누적='+cum+'<BR>'; // 출력 문자열으로 결합
  } // 루프 종료
  eval('showArea.innerHTML=str'); // id=showArea 인 개체에 출력(HTML 태그로 넣어 줌)
} // 기능함수 종료
</SCRIPT>

<DIV id=showArea style="border:solid 1 blue;background:white;width:200;padding:5" title="결과"
  onClick="checkit()">클릭하여 결과를 보라.</DIV>

따라서 Javascript 문장을 수행하게 하는데에도 많이 사용된다.

function
eval 기능함수
견본예제
이전페이지로페이지 맨위로
최종 수정:
06/25/2025 23:50:48
KoXo Homepage
All right reserved
비정상적인 방식으로 프레임없이 페이지에 접속하면 자주 오류가 발생됩니다.
오류가 나면 정상적 접속으로 시도해 보세요.
http://koxo.com/lang/js/function/eval.html