๐Ÿคฃ TIL) Java Script๋ฅผ Script!

Solmiiยท2020๋…„ 4์›” 20์ผ
2

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
1/24
post-thumbnail

...๋ฅผ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—!

JS์˜ ์—ญ์‚ฌ ๋„˜ ์žฌ๋ฏธ์žˆ๊ฒŒ ๋ด์„œ ๋งํฌ ๋‚จ๊น๋‹ˆ๋‹น....์ด์ด.....๐Ÿ™ˆ

๊ทธ๋Ÿผ ์ด์ œ ์ง„์งœ ์‹œ์ž‘!!


๐Ÿง HTML์—์„œ Java Script ์—ฐ๊ฒฐํ•˜๊ธฐ!

๐Ÿ‘‰ HTML์—์„œ script๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Java Script๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์˜ค๋Š˜์€ script๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!!

<body>
   <script>
       document.write("Hello World");
       document.write(1+1);
   </script>
</body>

์šฐ์„ , ์ด๋ ‡๊ฒŒ body ํƒœ๊ทธ ์•ˆ์— script tag๋กœ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค!
(inline style๋‚˜ Internal Style Sheet๊ฐ™์€ ๋Š๋‚Œ)
(์ฐธ๊ณ ๋กœ document.write(1+1);๋Š” ๊ฒฐ๊ณผ๊ฐ’์ธ 2๋กœ ์ถœ๋ ฅ๋œ๋‹ค. ์šฐ์™•~ ๋˜‘๋˜‘ํ•ด!)


๐Ÿ™‹๐Ÿปโ€โ™€๏ธ ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์€ ์™ธ๋ถ€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ HTML์— ์—ฐ๊ฒฐํ• ํ…๋ฐ, ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ๋ ๊นŒ?

โ˜น๏ธ head์•ˆ์— script

<head>
  <script src="main.js"></script>
</head>

script1

  • ์ด๋ ‡๊ฒŒ html์„ ๋ถ„์„ํ•˜๋‹ค๊ฐ€....๊ฐ‘์ž๊ธฐ ๋ฉˆ์ถฐ๋ฒ„๋ฆฌ๊ณ ...!
    js๋ฅผ ๋จผ์ € ๋‹ค์šด๋ฐ›๊ณ  ์‹คํ–‰ํ•œ ๋‹ค์Œ, ๋‹ค์‹œ html์„ ๋ถ„์„ํ•œ๋‹ค.

    ๐Ÿ‘ css, ์›นํฐํŠธ ๋“ฑ ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค ํŒŒ์ผ์„ ํ•œ ๊ตฐ๋ฐ์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๐Ÿ‘Ž js๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  ์‹คํ–‰ํ•œ ํ›„์— ๋‚˜๋จธ์ง€ html์„ ๋ถ„์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, js ํŒŒ์ผ์ด ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ Œ๋”๋ง ์†๋„๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์ง€์—ฐ๋œ๋‹ค..

๐Ÿ˜• body์•ˆ์— script

<body>
  <script src="main.js"></script>
</body>

script2

  • html์„ ๋จผ์ € ๋ถ„์„ ์™„๋ฃŒํ•˜๊ณ  โ‡’ ๊ทธ ํ›„์— js ๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  โ‡’ js๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

    ๐Ÿ‘ js๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ „์—, ๋จผ์ € ์ค€๋น„๋œ html์„ ๋น ๋ฅด๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ๐Ÿ‘Ž ์›น์‚ฌ์ดํŠธ๊ฐ€ js์— ๋งŽ์ด ์˜์กดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณด๊ธฐ๊นŒ์ง€ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.

๐Ÿ™‚ head + async

<head>
  <script async src="main.js"></script>
</head>

script3

  • html๋ฅผ ๋ถ„์„ํ•˜๋ฉด์„œ ๋™์‹œ์— js๋„ ๋‹ค์šด๋ฐ›๊ณ  โ‡’ js ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด โ‡’ html ๋ถ„์„์€ ๋ฉˆ์ถ”๊ณ  js๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•œ๋‹ค.

    ๐Ÿ‘ html๊ณผ js๋ฅผ ๋ณ‘๋ ฌ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋•Œ๋ฌธ์— head๋‚˜ body์•ˆ์— ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ ๋ณด๋‹ค ๋ Œ๋”๋ง ์†๋„๊ฐ€ ๋” ๋น ๋ฅด๋‹ค.

    ๐Ÿ‘Ž html์ด ๋ถ„์„๋˜๊ธฐ๋„ ์ „์— js๊ฐ€ ๋จผ์ € ๋‹ค์šด๋ฐ›์•„์ง€๊ธฐ ๋•Œ๋ฌธ์—, js๋Š” ์ด๋ฏธ ์‹คํ–‰๋๋Š”๋ฐ html์€ ๋ถ„์„์ด ์•ˆ๋๋‚˜์„œ ์—ฌ์ „ํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๋ณด๊ธฐ๊นŒ์ง€ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

    ๐Ÿ‘Ž ์ผ๋ถ€ ์›นํŽ˜์ด์ง€์—์„œ async ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.
<head>
  <script async src="a.js"></script>
  <script async src="b.js"></script>
  <script async src="c.js"></script>
</head>

multiple_script3๐Ÿ‘Ž ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ๊ฐœ์˜ js๋ฅผ scriptํ–ˆ์„ ๊ฒฝ์šฐ, scriptํ•œ ์ˆœ์„œ์™€ ์ƒ๊ด€ ์—†์ด ๋จผ์ € ๋‹ค์šด๋กœ๋“œ ๋œ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—...์ˆœ์„œ์— ์˜์กด์ ์ธ js๋ผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

๐Ÿ˜„ head + defer

<head>
  <script defer src="main.js"></script>
</head>

script4

  • html์„ ๋ถ„์„ํ•˜๋Š” ๋™์•ˆ js๋ฅผ ๋‹ค์šด๋งŒ ๋ฐ›๋„๋ก ๋ช…๋ นํ•˜๊ณ , html ๋ถ„์„์ด ๋๋‚œ ํ›„์— ๋‹ค์šด๋ฐ›์•„ ๋†“์•˜๋˜ js๋ฅผ ๋ฐ”๋กœ ์‹คํ–‰ํ•œ๋‹ค.

    ๐Ÿ‘ html์ด ๋ถ„์„๋˜๋Š” ๋™์•ˆ js๋ฅผ ๋ฏธ๋ฆฌ ๋‹ค์šด๋ฐ›์•„ ๋†“๊ณ , ์‹คํ–‰์€ html์ด ์™„๋ฒฝํžˆ ์ถœ๋ ฅ๋œ ํ›„์— ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๋‹ค.

    ๐Ÿ‘Ž ์ผ๋ถ€ ์›นํŽ˜์ด์ง€์—์„œ defer ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. (async ๋ณด๋‹จ ๋งŽ์ด ์ง€์›ํ•จ)
<head>
  <script defer src="a.js"></script>
  <script defer src="b.js"></script>
  <script defer src="c.js"></script>
</head>

multiple_script4๐Ÿ‘ js๊ฐ€ ๋‹ค์šด๋˜๋Š” ์†๋„์— ์ƒ๊ด€์—†์ด html์ด ๋ชจ๋‘ ์ถœ๋ ฅ๋œ ํ›„์— ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—,
์ˆœ์„œ์— ์˜์กด์ ์ธ js๋„ ์ง€์ •ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋œ๋‹ค!


๐Ÿ” ๊ณต์‹์‚ฌ์ดํŠธ

ECMA๊ฐ€ ๊ณต์‹์‚ฌ์ดํŠธ์ด๊ธด ํ•˜์ง€๋งŒ.... ๋„˜๋‚˜ ๋‚œํ•ดํ•œ๊ฒƒ...
ECMA๊ฐ€ ๋‚œํ•ดํ•˜๊ณ  ์–ด๋ ต๋‹ค๋ฉด, ์†ํŽธํ•˜๊ฒŒ MDN์—์„œ ๊ณต๋ถ€ํ•˜์ž!


โš ๏ธ strict mode

'use strict';

console.log('Hello World!');

javaScript๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ์ƒ๋‹จ์— 'use strict'; ๋ฅผ ์„ ์–ธํ•ด์ฃผ๋ฉด ์ข‹๋‹ค!
TypeScript ์ด์šฉ์‹œ์—๋Š” ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ, Vanilla js๋กœ ์ž‘์—…ํ•  ๋• ๊ผญ ์„ ์–ธํ•ด์ฃผ์ž!

๐Ÿคท๐Ÿปโ€โ™€๏ธ ์™œ ์„ ์–ธํ•ด์•ผ ํ•˜๋Š”๋ฐ???

javaScript๋Š” ๋งค์šฐ ์œ ์—ฐํ•œ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— (์„ ์–ธ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค๋˜๊ฐ€, ๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ ํ”„๋กœํ† ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•œ๋‹ค๋˜๊ฐ€ ๋ง๋„์•ˆ๋˜๋Š” ์ผ์ด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค...!) ๋งŽ์€ ์‹ค์ˆ˜๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค......

'use strict'; ๋Š” โ‡’ ECMAScript5์— ์žˆ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์œผ๋กœ, ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์—„๊ฒฉํ•œ ์šด์šฉ Context ์•ˆ์—์„œ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์„œ....

  1. ์‚ฌ์†Œํ•œ ์ฝ”๋”ฉ ์‹ค์ˆ˜๋ฅผ ์žก์•„๋‚ด์ค€๋‹ค.
  2. ์ƒ๋Œ€์ ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์•ก์…˜์ด ๋ฐœ์ƒํ•˜๋Š”๊ฑธ ๋ฐฉ์ง€ํ•œ๋‹ค.
    (์ „์—ญ ๊ฐ์ฒด๋“ค์— ์ ‘๊ทผํ•˜๋Š” ๋“ฑ์˜ ๊ฒฝ์šฐ)
  3. ๋ช…ํ™•ํžˆ ์ •์˜๋˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ๋“ค์„ ๋น„ํ™œ์„ฑํ™” ์‹œํ‚จ๋‹ค.

์ฝ”๋ฆฐ์ด๊ฐœ๋ฐœ ์™•์ดˆ๋ณด ์ฝ”๋ฆฐ์ด์ž…๋‹ˆ๋‹ค!
์ด ๋‚ด์šฉ์€ ํ˜ผ์ž ๋™์˜์ƒ ๊ฐ•์˜&๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ œ๊ฐ€ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ„ ๊ฐœ๋…์ด ํ‹€๋ ธ๊ฑฐ๋‚˜ ๋” ๋ณด์ถฉํ•  ๊ฐœ๋…์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!!

profile
ํ•˜๋ฃจ๋Š” ์น˜์—ดํ•˜๊ฒŒ ์ธ์ƒ์€ ์—ฌ์œ ๋กญ๊ฒŒ

0๊ฐœ์˜ ๋Œ“๊ธ€