Front/JavaScript

[JavaScript] ๋ชจ๋“ˆ

ddo04 2024. 7. 7. 01:05
728x90

๐Ÿ“ฒโ€Š ๋ชจ๋“ˆ

  • ์ฝ”๋“œ๋ฅผ ๋ชจ์•„๋†“์€ ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ์˜๋ฏธ
  • ์žฌ์‚ฌ์šฉ์„ฑ์ด๋‚˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ ๋“ฑ์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉ
  • ํฐ ๋ชฉ์  ํ•˜๋‚˜๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ด€๋ จ๋œ ์กฐ๊ฐ ์ฝ”๋“œ๋“ค์ด๋‚˜ ๊ด€๋ จ๋œ ํ•จ์ˆ˜๋“ค์„ ๋ชจ์•„์„œ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋กœ ์ž‘์„ฑ
  • ํ•˜๋‚˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ
  • ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด imfort ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€์— ์žˆ๋Š” ๋ชจ๋“ˆ์„ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ์Œ
  • export ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ๋ชจ๋“ˆ์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Œ

๐Ÿ“ฒโ€Š ๋ชจ๋“ˆ ์ƒ์„ฑ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ

  • ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๋ฅผ ๋ฐ–์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ ์œ„ํ—ค์„œ๋Š” ๊ฐ€์žฅ ์•ž์— export๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๋ฉด ๊ฐ€๋Šฅ
  • ๋‚ด๋ณด๋‚ผ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜ ํ‚ค์›Œ๋“œ ์•ž์— export๋งŒ ๋ถ™์ด๋ฉด ๋ชจ๋“ˆ๋กœ์„œ ๋‚ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ
export function greeting(){
    console.log('Hello');
}

๐Ÿ“ฒโ€Š type = "module"

  • ๋‚ด๋ณด๋‚ธ greeting ํ•จ์ˆ˜๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฌํŠธ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 
  • html ๋ฌธ์„œ์—์„œ src ํƒœ๊ทธ ๋ถ€๋ถ„์— type์ด๋ผ๋Š” ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ’์„ ๋ชจ๋“ˆ๋กœ ์ง€์ •
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button>ํด๋ฆญ</button>
    <button class="remove">์ด๋ฒคํŠธ๋ฅผ ์‚ญ์ œํ•˜์„ธ์š”</button>

    <script type="module" src="test.js"></script>

    <h1>JavaScript ์—ฐ์Šต</h1>
    <p>๋งŽ์ด ํž˜๋“ค๊ณ  ์–ด๋ ต๋”๋ผ๋„ ์—ด์‹ฌํžˆ ํ•˜๋ฉด ํฌ๋ง์ด ์˜จ๋‹ค</p>
</body>
</html>

๐Ÿ“ฒโ€Š ์™ธ๋ถ€ ๋ชจ๋“ˆ ๊ฐ€์ ธ์˜ค๊ธฐ (import)

  • {} ์ค‘๊ด„ํ˜ธ๋ฅผ ์—ด๊ณ  ๊ฐ€์ ธ์˜ฌ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž‘์„ฑ
  • ๋ชจ๋“ˆ์ด ์†ํ•ด ์žˆ๋Š”์ง€ ํ•ด๋‹น ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •
import { greeting } from "./hello.js";

greeting();

๐Ÿ“ฒโ€Š ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹ ์ฐจ์ด

  • ๊ธฐ๋ณธ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹๊ณผ ์ด๋ฆ„์ด ์ •์˜๋œ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹์ด ์žˆ์Œ
  • ์ด๋ฆ„์ด ์ •์˜๋œ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹์€ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜, ํด๋ž˜์Šค ๋“ฑ์˜ ์„ ์–ธ ํ‚ค์›Œ๋“œ ์•ž์—๋‹ค๊ฐ€ export ๋ช…๋ น์–ด๋ฅผ ๋ถ™์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ Named Exports๋ผ๊ณ  ํ•จ
  • ์ด๋ฆ„์ด ์ •์˜๋œ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•จ์ˆ˜๋‚˜ ๊ฐ์ฒด, ๋ณ€์ˆ˜ ๋“ฑ์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ  ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ ์•ˆ์—์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“ˆ์˜ ์ •์˜๋œ ์ด๋ฆ„์„ ๋‚˜์—ดํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋จ
  • ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋‹ค๋ฅธ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด as ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„์นญ ์ง€์ • ๊ฐ€๋Šฅ
  • ๊ธฐ๋ณธ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹์ด๋ผ๋Š” ๋ชจ๋“ˆ์—์„œ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋‚˜ ๊ฐ์ฒด, ๋ณ€์ˆ˜๋“ค์„  ๊ธฐ๋ณธ์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • export ๋’ค์— default ํ‚ค์›Œ๋“œ ์ถ”๊ฐ€
  • ๊ธฐ๋ณธ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฆ„์ด ์ •์˜๋œ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•  ๋•Œ ์ค‘๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Œ
  • ๋ชจ๋“ˆ์ด ์ •์˜๋œ ์ด๋ฆ„์ด ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
export function greeting(){
    console.log('Hello');
}

export dafault function greeting(){
    console.log('Hello');
}

๐Ÿ“ฒโ€Š ์„ ์–ธ๋ถ€์™€ export ๋ถ„๋ฆฌ

  • ๋‚ด๋ณด๋‚ด๊ธฐ ์ž‘์—…์„ ํ•  ๋•Œ ํ•จ์ˆ˜๋‚˜ ๊ฐ์ฒด, ํด๋ž˜์Šค ๋“ฑ์„ ์„ ์–ธํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ๋ณ„๊ฐœ๋กœ ๋ชจ๋‘๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋ถ„๋ฆฌํ•˜์—ฌ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ด๋ฆ„์ด ์ •์˜๋œ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” default ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์šฐ๊ณ  ์ค‘๊ด„ํ˜ธ ์ ์šฉ
function greeting(){
    console.log('Hello');
}

export default greeting;
export function greeting(){
    console.log('Hello');
}

export{ greeting };

'Front > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JavaScript] ์ž๋ฃŒํ˜•  (0) 2024.08.04
[JavaScript] ๊ฐ์ฒด ์ถ•์•ฝ ๋ฌธ๋ฒ•  (0) 2024.07.23
[JavaScript] ์ด๋ฒคํŠธ  (0) 2024.07.07
[JavaScript] DOM  (0) 2024.07.06
[JavaScript] ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น  (0) 2024.07.06