상세 컨텐츠

본문 제목

JavaScript - eval(), JSON.parse()

개발/JavaScript

by 뉴에이스 2018. 12. 3. 15:15

본문

현재는 비권장하는 함수 (예전에 많이 사용되었으니 참고) (성능저하)
eval("자바스크립트 엔진이 해석할 수 있는 문자열")
"use strict" 사용시에는 eval()을 사용 할 수 없음

JSON 형태의 문자열일 경우에는 JSON.parse(JSON문자열) - ES 5부터 추가
json등으로 js 결과값을 받을 때 변환시 eval() 사용됬었음.. "{result:10, items:[{title:'a'},{title:'b'},{title:'c'}]}";
ex> var naver = eval(data2); - naver.result... naver.items[0]...

소스
var data = "var i=10 ; var j=20 ; var sum=i+j; ";
var data2 = '{"result": 10, "items": [{"title": "a"}, {"title": "b"}, {"title": "c"}]}';

//data 문자열의 내용을 실행해서 메모리에 올려준다.
eval(data); 

var naver = eval("(" + data2 + ")");
var naver = JSON.parse(data2);
console.log("naver.result : " + naver.result);

console.log("i : " + i); // i is not defined, eval 사용 후에는 결과값이 출력됨
console.log("j : " + j);
console.log("sum : " + sum);

결과
naver.result : 10
i : 10
j : 20
sum : 30

관련글 더보기

댓글 영역