본문 바로가기
javascript

2024-03-14

by rewind 2024. 3. 14.

모듈만들기

 

const fck1 = function(){
    alert("메롱1");
}

const fck2 = function(){
    alert("메롱 규상");
}

const fck3 = function(){
    alert("성배 메롱");
}

const set = {fck1 , fck2 , fck3};

export default set;

 

함수를 만들고 객체에 추가

import하기 -> 경로 확실히 잡아준다

<!DOCTYPE html>
<meta charset="UTF-8">
<!-- 브라우저에서 모듈 사용-->
<script type="module" defer>
    // defer -> 실행을 늦춘다!(인터프리터 언어의 보완점 , 완벽하진 않다)
    "use strict";   // 엄격모드 사용 권장, 하지만 default값임
    // 모듈은 한번만 사용가능!
    import inho from "./inhomod.js";
    // set을 inho로 받아온다 , 필요한것만 사용가능!
    console.log("체크 : " , inho);
    // inho.fck1();        
    // inho.fck2();        
    // inho.fck3();    
    var aaa = "인호는 예비군";    
</script>
<script>
    alert(aaa);
    alert("이러면 사용 불가");
</script>
<script type="module">
    alert(aaa);
    alert("이것도 사용 불가");
    alert("밑처럼 전역변수 선언시에는 사용 가능");
</script>
<script>
    // 전역변수 module에서 가져가 써도 가능!
    var aaa ="이건?";
</script>

 

필요한 것을 객체에 담아서 전달 -> export시 원하는 것만 사용 가능

모듈은 엄격모드가 default값이다(기본 적용됨)

defer는 완벽하지는 않다

 

import * as MyModule from ".../xxx.js";
MyModule.myFunc1();
MyModule.myFunc2();
// 모듈 통째로 가져오기

 

export * from "../xxx.js"
exporrt {All} from "../xxx.js"

// 가져온걸 합쳐서 내보내기

 

//import 함수는 Promise 리턴
import("../xxxx.js")
 .then((MyModule) => {
 });
 
 // 동적모듈 로딩

 

//await를 가진 모듈을 import하는 모듈속의 모듈들은 
//await가 끝날때 까정 기다린당
const colors = fetch("../json리턴url")
  .then((response) => response.json());

export default await colors;

// await 사용