Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript eval() 함수로 배열의 특정 값 가져오는 방법

JavaScript eval() 함수란?

JavaScript에서 eval() 함수는 문자열 형태로 전달된 인수를 평가(evaluate)하고 실행하는 내장 함수입니다. 문자열로 작성된 JavaScript 코드를 실제 코드처럼 해석하여 그 결과를 반환합니다.

eval() 함수의 기본 문법은 다음과 같습니다.

eval(str)

여기서 str에는 표현식(expression), 변수(variable), 또는 하나 이상의 문(statement)이 들어갈 수 있습니다.

배열에서 특정 값 가져오기

먼저 다음과 같은 학생 점수 배열이 있다고 가정해 보겠습니다.

var studentMarks = [76,34,56,78,81,98,90,59,64];

이제 eval() 함수를 사용해 배열의 특정 값을 가져와 보겠습니다. 아래 예제에서는 인덱스 1에 해당하는 값을 조회합니다.

예제 코드

var studentMarks = [76,34,56,78,81,98,90,59,64];
var stringValue = eval("studentMarks");
console.log(stringValue[1]);

위 코드에서는 문자열 "studentMarks"를 eval()로 평가하여 실제 배열 객체로 변환한 뒤, 대괄호 표기법으로 인덱스 1의 값에 접근합니다.

프로그램 실행 방법

Node.js 환경에서 위 프로그램을 실행하려면 다음 명령어를 사용합니다.

node fileName.js

여기서는 파일 이름이 demo80.js라고 가정합니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

PS C:\Users\Amit\JavaScript-code> node demo80.js
34

배열 studentMarks에서 인덱스 1 위치의 값인 34가 정상적으로 출력되었습니다.

eval() 사용 시 주의사항

eval()은 편리하지만 보안상 위험할 수 있으므로 신중하게 사용해야 합니다.

  • 코드 삽입 공격 위험: 외부 입력값을 eval()로 실행하면 악성 코드가 실행될 수 있습니다.
  • 성능 저하: eval()은 런타임에 코드를 컴파일하므로 일반적인 코드 실행보다 느립니다.
  • 디버깅 어려움: 동적으로 생성된 코드는 디버깅과 유지보수가 까다롭습니다.

따라서 실무에서는 eval() 대신 JSON.parse(), 배열 인덱스 접근 등 더 안전한 대안을 사용하는 것이 권장됩니다.