[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.)