문자열로 표현 된 수식을 실행시켜 표현해준다.
# python에서
formula = eval('1+2')
print(formula)
>>>3
// javascript에서
console.log(eval('2 + 2'));
// Expected output: 4
이런 식으로 문자열로 된 수식을 실행시켜주는 역할을 한다.
구글에 eval()
을 쳤을 때 꽤 위쪽의 연관 검색어 목록에서 eval() is evil
이라는 말을 찾을 수 있다.
eval()은 죄악이다!?
이게 대체 무슨 말인고 하면...
eval()
은 문자열로 구성 된 수식을 계산해서 결과값으로 내주는 간편한 기능이다.
하지만... 간편한 만큼 단점이 뒤따르는 편이다
특히 js의 경우, 코드에 해당 변수가 있는지 확인하고, 값을 대입하기 위해 길고 무거운 검색시간을 거쳐야 한다.
타인이 내가 작성해놓은 보안 코드에 쉽게 접근할 수 있다.
웹페이지나 확장 프로그램의 권한으로 사용자의 기기에서 악의적인 코드를 수행할 수 있게 된다는 것이다.
이런 문제들로, 서버 코드를 작성할 때는 eval()
사용을 지양하는 편이다.