์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ชจ๋์ด๋, ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๋ฅผ ํตํด ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ์ง ๋ณด์ํ๊ธฐ๊ฐ ์ฝ๊ณ , ์ฝ๋๋ฅผ ๊ด๋ฆฌํจ์ ์์ด์๋ ํธ๋ฆฌํฉ๋๋ค.
src = "import ํ js ํ์ผ"
import
export
type = "module"
src๋ก html ํ์ผ๊ณผ, js ํ์ผ ์ฐ๋ํ๊ธฐ.
- ์๋ก์ด html ํ์ผ์ ์ฌ์ฉํ๊ณ ์ถ์ ํจ์๋ฅผ ์์ฑํ๊ณ , live server๋ฅผ ์คํํด์, ์ฝ์๋ก ์๋ ํ์ธ์ ํด๋ณด์๋ค.
// html ํ์ผ์์ live server ์ด์ด ์ฝ์๋ก๊ทธ ํ์ธ
<script>
function getLengthOfString(str) {
return +str.length;
}
const result = getLengthOfString('abcde');
console.log(result); // 5
</script>
์ ์์๋ ํ์ธ ์๋ฃ.
html ํ์ผ๊ณผ js ํ์ผ๋ก ์ ์ฝ๋ ๋ถ๋ฆฌ.
// index.html ํ์ผ์
๋๋ค.
<script src="./main.js"></script>
// main.js ํ์ผ ์
๋๋ค.
function getLengthOfString(str) {
return +str.length;
}
const result = getLengthOfString('abcde');
console.log(result); // 5
์ด์ ๋ ์ด์ html ํ์ผ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์กด์ฌํ์ง ์์ง๋ง,
์ด๋ ๊ฒ ํ์ผ์ ๋ถ๋ฆฌ์์ผ๋, script์ ์์ฒ์ด main.js ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๊ธฐ ๋๋ฌธ์, html ํ์ผ์์ live server๋ฅผ ์ด์ด์ ์ฝ์๋ก๊ทธ๋ฅผ ํ์ธํด๋, ์ ์์ ์ผ๋ก ์ฝ๋๊ฐ ์๋ํ๋ ๊ฒ์ด๋ค.
src ์ ๋ป.
Export
'์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์' ์์ ํจ์, ๋ณ์ ๋๋ ํด๋์ค๋ฅผ ์ธ๋ถ๋ก ๊ณต๊ฐ์ํฌ ์ ์๋ค.
// test.js ํ์ผ์
๋๋ค.
// Export ์ฌ์ฉ๋ฒ
export const result = getLengthOfString('abcde');
// ์ธ๋ถ์ ๊ณต๊ฐํ๊ณ ์ ํ๋ ํจ์, ๋ณ์ ๋๋ ํด๋์ค๋ช
์์ export ๋ฅผ ์จ์ค๋ค.
// test.js ํ์ผ ์
๋๋ค.
export function getLengthOfString(str) {
return +str.length;
}
export const result = getLengthOfString('abcde');
์๋ก์ด ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ง๋ค๊ณ ๋ด๊ฐ ์ธ๋ถ ํ์ผ์ ๊ณต๊ฐํ๊ณ ์ถ์ ํจ์์, ๋ณ์๋ฅผ export๋ฅผ ํด์ฃผ์๋ค.
Import
'์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ' ์์ ํจ์, ๋ณ์ ๋๋ ํด๋์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
// main.js ํ์ผ์
๋๋ค.
// Import ์ฌ์ฉ๋ฒ
import { ๋ถ๋ฌ์ค๊ณ ์ถ์ ํจ์๋ช
๋๋ ๋ณ์๋ช
, ํด๋์ค๋ช
} from "./test.js";
// main.js ํ์ผ ์
๋๋ค.
import { getLengthOfString, result } from './test.js';
console.log(result);
์์ฒ๋ผ ์ธํ ์ ์๋ฃ ํ index.html ์์ ์ฝ์๋ก๊ทธ๊ฐ ์ ์ฐํ๋์ง ํ์ธ.
Syntax Error (๊ตฌ๋ฌธ ์ค๋ฅ)
Uncaught SyntaxError: Cannot use import statement outside a module
๋ชจ๋ ์ธ๋ถ์์ import ๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ณผ์ ์ง๋จ ๋ฐ ํด๊ฒฐ
1. export ํค์๋๋ฅผ ํตํด์ ํจ์์ ๋ณ์๋ฅผ ์ธ๋ถ ํ์ผ๋ก ๊ณต๊ฐ๋ฅผ ํด์ฃผ์๊ณ ,
2. import ํค์๋๋ฅผ ํตํด์, test.js ํ์ผ์ ํจ์์ ๋ณ์๋ฅผ main.js ๋ก ๊ฐ์ ธ์์ ์ฌ์ฉ์ ํ์ผ๋,
3. ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋์ index.html ํ์ผ์์ ๋ถ๋ฌ์ฌ๋ ค๋ฉด, script ํ๊ทธ์ type="module" ์์ฑ์ ์ถ๊ฐํด ์ฃผ์ด์ผ ํ๋ค.
<!-- index.html ํ์ผ ์
๋๋ค. -->
<script type="module" src="./main.js"></script>
์ด๋ ๊ฒ ์ธํ ์ ์๋ฃํ๋ค๋ฉด,
์ ์์ ์ผ๋ก console.log ๊ฐ ์ ์ฐํ๋๊ฑธ ๋ณผ ์ ์๋ค.
#javascript_๋ชจ๋ #import #export #type_module #src #syntaxerror #jsํ์ผ๋ถ๋ฆฌ