[JavaScript] eval 대신 Dynamic Import
3182 단어 JavaScripttech
eval가 있습니다.외부에서 임의의 코드를 실행할 수 있는 위험 처리로 성능에도 문제가 있다.
MDN에도 "eval 사용하지 마세요!"이렇게 쓰여 있다.
MDN 기사에서는 대체 사용
Function() 방법, 이 편에서는 다른 방법을 소개했다.메서드
import().const src = `
export function hello(name){
console.log("Hello, " + name);
};
`;
const data = "data:text/javascript;base64," + btoa(src);
// ↓こっちもOK
// const data = "data:text/javascript;charset=utf-8," + encodeURIComponent(src);
const mod = await import(data);
mod.hello("world");
// → Hello, world
import()는 기본적으로 파일 경로를 매개 변수로 하지만 여기에 데이터 URI를 추가하여 문자열을 변환하고 전달하여 모듈로 해석한다.상기 예에서
src의 문자열을 모듈로 가져오고 실행합니다.eval()에 비하면 안전하지는 않지만, 일본어로 소개된 글은 발견되지 않아 요약했다.실용성은 불분명하지만, 미리 머리 한 구석에 놓으면 어떤 작용을 할지 모르겠다.
아.. 아니요, 사용하지 마세요..
참고 자료
Reference
이 문제에 관하여([JavaScript] eval 대신 Dynamic Import), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kawarimidoll/articles/6b1f46caf03247텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)