>웹 프론트엔드 >JS 튜토리얼 >`eval()`을 사용하지 않고 JavaScript에서 수학적 표현식을 안전하게 평가하는 방법은 무엇입니까?

`eval()`을 사용하지 않고 JavaScript에서 수학적 표현식을 안전하게 평가하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-08 08:27:14251검색

How to Safely Evaluate Mathematical Expressions in JavaScript Without Using `eval()`?

Eval()을 사용하지 않고 JavaScript에서 수학 표현식을 평가

잠재적으로 위험한 eval() 함수에 의존하지 않고 수학 표현식을 평가하는 것은 일반적입니다. JavaScript 프로그래밍의 작업. 이 문제를 해결하기 위해 몇 가지 대체 솔루션을 살펴보겠습니다.

JavaScript 표현식 평가기

JavaScript 표현식 평가기 라이브러리는 수학 표현식을 구문 분석하고 평가하는 편리한 방법을 제공합니다. 이를 통해 표현식 문자열을 지정하고 변수를 사용하여 평가를 사용자 정의할 수 있습니다. 예를 들어, 다음 코드는 x가 3인 "2 ^ x" 표현식을 평가합니다.

const result = Parser.evaluate("2 ^ x", { x: 3 });

Math.js

Math.js는 또 다른 인기 있는 형식입니다. 수학 연산을 위한 JavaScript 라이브러리입니다. 여기에는 광범위한 수학 함수를 지원하는 강력한 표현식 파서가 포함되어 있습니다. JavaScript 표현식 평가기와 마찬가지로 변수를 전달하고 표현식을 동적으로 평가할 수 있습니다.

const result = math.eval('sin(45 deg) ^ 2');

사용자 권장 사항

다른 사용자가 Stack Overflow에서 다음과 같은 응답을 제안했습니다. evalx() 함수를 활용하여 수학적 표현식을 안전하게 평가합니다. 다음은 해당 답변의 일부입니다.

function evalx(expr, scope) {
  return Function(`'use strict'; return (${expr})`)()(...scope);
}

evalx() 함수를 호출하면 eval()과 관련된 보안 위험 없이 표현식을 평가할 수 있습니다.

위 내용은 `eval()`을 사용하지 않고 JavaScript에서 수학적 표현식을 안전하게 평가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.