IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

javaScript Eval()

Programming/JavaScript 2007. 10. 24. 09:50
반응형
검정하게되는 문자열이 존재하지 않는경우에는  "undefined"라는 문자열을 반환.

해당명이 존재하는지 여부를 알기 위해선 다음 사용.
     document.getElementById('xx');
         > xx라는 ID 를 가진 객체가 없는경우 null  리턴




1. 첫번째

<form method='post' name='f'>
 <input type='radio' name='radi' value=100 checked>100 +<input name='radi0'><br>
 <input type='radio' name='radi' value=90>90 +<input name='radi1'><br>
 <input type='button' name='aa' omClick='goJsp()' value='submit'><br>
 <input type=text name=addVal>
</form>
 
<script>
var r = "";
 function goJsp() {
   for(var i=0; i < f.radi.length; i++) {
   if(f.radi[i].checked) {
    r = eval("document.all.radi"+i);
//    r = eval("f.radi"+i);  // form name으로 접근도 가능하다..
    f.addVal.value = parseInt(f.radi[i].value) + parseInt(r.value);
    break;
   }
   }
 }
</script>
 
주황색 글씨가 아주...그냥...없으면 안된다...


2. 두번째

<script language="javascript">
function fun(form)
{
      var str='';
      for(var i=1;i<3;i++)
      {
      str += eval("form.check"+i+".checked");
      //str += eval("document.test.check"+i+".value");
      }
      alert(str);
}
</script>
<body>
<form name="test">
<input type="checkbox" name="check1">
<input type="checkbox" name="check2">
<input type="button" onclick="fun(this.form)">
</form>
</body>

__________________________________________________________________
쉽게 말해서 인자로 받은 내용에 대해서 evaluate, 즉 값을 매겨서 그 결과값을 반환한다고 생각하시면 됩니다. 문자열로 된 수식을 계산식으로 변환하는 것이 기본적인 기능이지만 문자열로 된 변수명이나 객체를 해당 변수나 객체로 변환시키는 역할도 합니다.

이런 스크립트가 있다고 하면..

<script>
test1='test2';
test2='test3';
test3='test4';

alert('test1='+test1);
alert(test1+'='+eval(test1));
alert(eval(test1)+'='+eval(eval(test1)));
</script>

alert('test1='+test1); 이 부분은 당연히 test1 변수에 'test2' 라는 값이 저장되어 있으니 'test1=test2' 라고 경고창이 뜨겠죠.
alert(test1+'='+eval(test1)); 이부분은 test1이라는 변수가 'test2' 라는 값을 가지고 있으므로 eval(test1) 은 곧 eval('test2'), 즉 'test2' 라는 문자열을 값을 매겨서(바꿔 말하면 변수명으로 생각해서) test2 라는 변수로 인식하라는 말이죠. 그러므로 결과적으로는 'test2=test3' 라고 경고창이 뜰테구요..
alert(eval(test1)+'='+eval(eval(test1))); 이 부분 역시 위에서와 마찬가지로 앞의 eval(test1) 은 'test3' 라는 값을 가지게 되고 뒤의 eval(eval(test1)) 은 eval('test3') , 즉 test3 라는 변수의 값인 'test4' 라는 문자열을 의미하므로 결과적으로는
'test3=test4' 라고 경고창이 뜨게 되겠죠.

마찬가지로 eval("form.check"+i+".value"); 이라는 의미는
'form.check' 라는 문자열에 i 라는 변수의 값과 'value'라는 문자열을 합쳐서 form.check1.value 나 form.check2.value 를 표현하는 것이죠.

글구.... 위에서는 eval("form.check"+i+".value"); 과 eval("document.test.check"+i+".value"); 은 서로 같은 의미입니다.


반응형
Posted by Edward. K
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • 중독성게임
  • android
  • iBATIS
  • rocketdock
  • 컴퓨터 관리
  • tomcat
  • Flash Player
  • sqlgate
  • EkNote
  • EditPlus
  • 전자정부프레임워크
  • 가상화폐무료
  • 색상코드표
  • STS
  • toad
  • Eclipse
  • netbeans
  • flex
  • 이미지 편집
  • Jboss
  • 캡쳐툴
  • ERwin
  • 플래시 게임
  • eclipse plugin
  • Graphic
  • egov
  • 이클립스
  • 사업 이야기
  • 개한민국
  • 미네르바

글 보관함

«   2026/03   »
일 월 화 수 목 금 토
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 31

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바