ES6에서 템플릿 리터럴은 동적 값으로 문자열 보간을 허용합니다. 그러나 때로는 동적 요소를 통합하기 위해 나중에 템플릿 리터럴의 평가를 연기해야 할 수도 있습니다.
질문: ES6 템플릿의 평가를 연기하는 코드를 어떻게 작성할 수 있습니까? 보간에 사용되는 요소를 동적으로 생성한 이후까지 리터럴로 처리해야 합니까?
답변: 여러 가지가 있습니다. 이를 달성하기 위한 접근 방식:
일반 문자열 사용:
즉시 평가를 피하기 위해 템플릿 문자열 대신 일반 문자열 리터럴을 사용합니다. 보간 자리 표시자 값은 다음과 같은 사용자 정의 프로토타입 방법을 사용하여 형식을 지정할 수 있습니다.
String.prototype.format = function() { var args = arguments; return this.replace(/$\{p(\d)\}/g, function(match, id) { return args[id]; }); }; console.log("Hello, ${p0}. This is a ${p1}".format("world", "test"));
태그가 있는 템플릿 리터럴 사용:
태그가 있는 템플릿 리터럴 대체 방법을 제안합니다. 그러나 "p0"과 같은 식별자의 보간을 허용하지 않고 대체 항목이 계속 평가된다는 점에 유의하는 것이 중요합니다.
function formatter(literals, ...substitutions) { return { format: function() { var out = []; for(var i=0, k=0; i < literals.length; i++) { out[k++] = literals[i]; out[k++] = arguments[substitutions[i]]; } out[k] = literals[i]; return out.join(""); } }; } console.log(formatter`Hello, <pre class="brush:php;toolbar:false">console.log(`Hello, ${"world"}. This is a ${"test"}`);. This is a `.format("world", "test"));
지연 방지:
형식 함수나 지연 없이 템플릿 문자열을 의도한 대로 사용하는 것을 고려하세요. 템플릿 문자열은 추가적인 복잡성 없이 동적 값을 보간하는 간결하고 효율적인 방법을 제공합니다.
위 내용은 ES6 템플릿 리터럴 평가를 연기하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!