반응형
안녕하세요, 오늘은 자바스크립트의 미리 정의된 전역 함수, predefined function들 중에서도 eval()함수에 대해서 알아보려고 합니다.
퇴근하고싶어요..
미리 정의된 전역 함수(Predefined functions)
Javascript 에서는 사용자의 편의를 위해 다양한 기능의 여러 전역 함수를 미리 정의하여 제공합니다.
이러한 전역 함수는 자바스크립트 내의 어떤 타입의 객체에서도 바로 사용할 수 있습니다.
아마 parseInt(), isNaN() 함수는 많이 들어보셨을 거라고 생각합니다.
JS의 미리 정의되어 있는 전역 함수는 다음과 같습니다.
- eval()
- uneval()
- isFinite()
- inNaN()
- parseFloat()
- parseInt()
- decodeURI()
- decodeURIComponent()
- encodeURI()
- encodeURIComponent()
- escape()
- unescape()
오늘은 이들중에서 첫번째로 적혀있는 eval()함수만 보려고 합니다!
eval()
eval()함수는 문자로 표현된 JavaScript 코드를 실행하는 함수입니다.
var x = 2;
var y = 5;
var z = "10";
console.log(eval('2+2')); //4
console.log(eval('2+2')=== eval('4')); //true
console.log(eval("x+y+1")); //8
console.log(eval("x+z")); //210(문자열 끼리의 합)
console.log(x + eval(z)); //12
console.log(eval(new String("2+3"))); //String{ "2+3"} (String 객체 반환)
console.log(eval('2+2')=== eval(new String('2+2'))); //false ( 4 != String 객체)
위의 예시에서처럼 기본적으로 문자로 표현된 자바스크립트 코드를 계산하며, String 생성자가 명시된 경우 문자열을 계산하는 대신 String 객체를 반환합니다.
※ 주의 : 문자열로부터 JavaScript를 실행시키는 것은 보안측면에서 매우 안좋다고 합니다.
짧지만 predefined function 중 하나인 eval() 함수에 대해서 배워봤습니다.
앞으로 다른 함수들에 대해서도 포스팅 하도록 하겠습니다.
반응형