[질문] JavaScript에서 eval()메소드의 반환값은 무엇인가요?
글쓴이: groovecy / 작성시간: 일, 2008/01/06 - 6:00오전
if (code == 'success') { var comment = <span>eval("("+xmlDoc.getElementsByTagName('data').item(0).firstChild.nodeValue+")")</span>; var listDiv = document.getElementById('commentList'); var commentDiv = makeCommentView(comment); listDiv.appendChild(commentDiv); document.addForm.name.value = ''; document.addForm.content.value = ''; alert("등록했습니다!["+comment.id+"]"); }
Ajax를 공부중인데 댓글기능을 구현하는 소스의 일부분입니다.
이중 eval() 메소드에서 "("+....+")" 의 형식으로 넣어주었는데 괄호를 넣어주면 넘어오는 값이 Object가 되고
괄호를 빼버리면 아래의 내용처럼 JSON형식의 내용 전체가 넘어오게 되던대요..
{ id: 5, name: 'abc', content: '아무내용이나' }
eval() 메소드 안에 괄호를 넣어주었을때와 그냥 사용했을때의 차이를 알고 싶습니다.
제발 좀 알려주세요.. 아무리 자료를 찾아봐도 못찾겠어요 ㅠㅠ
두시간째 삽질하다가 결국 질문 올려봅니다. 좀 살려주십쇼!!
Forums:
eval의 return값은
eval의 return값은 마지막 표현식의 결과값을 반환한다...라고 알고있습니다만,
생각해보면 괄호 때문에 Object로 넘어오는게 이상하지도 않습니다.
아마 의도하신 바로는 JSON 객체가 나오는게 맞겠지요....
보안상의 이유나 뭐로나, 가급적 쓰지 않는 것을 추천합니다 -_-
여기에 기가 막힌 글이 하나 있습니다.
그리고 Ajax와 JavaScript에 대한 자료는
꼭 MDC(Mozilla Developer Center)에서도 찾아보시기 바랍니다.
JavaScript를 한다면 처음으로 들러봐야할 곳이라고 할정도로 자료가 좀 됩니다.
( 것도 표준입니다. )
댓글 달기