>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 프로그래밍 방식으로 문자열을 템플릿 리터럴로 안전하게 변환하려면 어떻게 해야 합니까?

JavaScript에서 프로그래밍 방식으로 문자열을 템플릿 리터럴로 안전하게 변환하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-02 02:01:09491검색

How Can I Programmatically Convert a String to a Template Literal in JavaScript Safely?

프로그래밍 방식으로 문자열을 템플릿 문자열로 변환

Javascript에서는 역따옴표( ) 또는를 사용하여 문자열 템플릿을 정의할 수 있습니다. 그러나 일부 시나리오에서는 템플릿 문자열과 유사하지만 구문상 문자열이 아닌 상황이 발생할 수 있습니다.

예를 들어 다음과 유사한 문자열이 있을 수 있습니다.

let a = "b:${b}";

그리고 나중에 유효한 템플릿 문자열로 변환하고 싶습니다.

동적 코드에는 eval 또는 new Function과 같은 메서드를 사용한다는 점에 유의하는 것이 중요합니다. 보안상의 이유로 생성을 권장하지 않습니다. 대신에. 다음과 같이 ES6에 구현된 String.prototype.interpolate 메서드를 활용할 수 있습니다.

String.prototype.interpolate = function(params) {
  const names = Object.keys(params);
  const vals = Object.values(params);
  return new Function(...names, `return \`${this}\`;`)(...vals);
};

이 메서드를 활용하면 다음과 같은 방식으로 문자열을 변환할 수 있습니다.

let b = 10;
console.log(a.interpolate({ b }));

출력은 b:10이 되며 이는 변수 b를 문자열 a로 성공적으로 보간했음을 보여줍니다.

위 내용은 JavaScript에서 프로그래밍 방식으로 문자열을 템플릿 리터럴로 안전하게 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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