์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ์œ ํ˜•

internal(๋‚ด๋ถ€) ๋ฐฉ์‹

  • ์ธ๋ผ์ธ ๋ฐฉ์‹์œผ๋กœ HTML ์†์„ฑ ๋‚ด๋ถ€์— ์งง๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์•„์ฃผ ์งง๊ฒŒ ์“ฐ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ณ  ์ฃผ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ํ†ตํ•ด ๋ฌธ์ž๋ฅผ ๋Š˜๋ ค์„œ ํ™œ์šฉ
<button onclick="alert(`์ธ๋ผ์ธ ๋ฐฉ์‹`)">alert ๋ฒ„ํŠผ</button>

External(์™ธ๋ถ€)์—์„œ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ๋‹จ, js ์ฝ”๋“œ ํŠน์„ฑ์ƒ ์™ธ๋ถ€์—์„œ๋งŒ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ด internal ๋ฐฉ์‹๊ณผ ์„ž์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค
  • script ํƒœ๊ทธ ์•ˆ์— js ์™ธ๋ถ€ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ src์— ์ž…๋ ฅ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค
<script src="01_external.js"></script>

๋ณ€์ˆ˜ ์ •์˜ ๋ฐ ํ‚ค์›Œ๋“œ

๋ณ€์ˆ˜: JS์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ๋นˆ ๋ฐ•์Šค => ๋ณ€์ˆ˜ , ๋ฐ•์Šค ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๋ฌผ๊ฑด => ๊ฐ’ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ์ข‹๋‹ค

๋ณ€์ˆ˜ ์„ ์–ธ ํ‚ค์›Œ๋“œ

  • var : ES6 ์ด์ „ ๋ฌธ๋ฒ•์—์„œ ์‚ฌ์šฉ๋œ ํ‚ค์›Œ๋“œ์ง€๋งŒ ES6 ์ดํ›„๋กœ๋Š” ์ž˜ ์“ฐ์ง€ ์•Š์Œ, ex ) var value = 10;
  • let(ES6) : ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€๋Š” ๋ณ€์ˆ˜๋กœ ์™„๋ฒฝํ•œ ์ง€์—ญ๋ณ€์ˆ˜, ex) let value = 10;
  • const(ES6) : ์ƒ์ˆ˜๋กœ ์„ ์–ธ์‹œ ํ™œ์šฉ, ๊ฐ’์ด ํ•œ๋ฒˆ ์ •ํ•ด์ง€๋ฉด ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€!, ex ) const = 10;

๋ฌธ์ž์—ด + ์ˆซ์ž ํ˜ผํ•ฉ ์‚ฌ์šฉ

  • ๋ฌธ์ œ์ : ๋ฌธ์ž์—ด + ์ˆซ์ž = ๋ฌธ์ž, ๋ฌธ์ž/์ˆซ์ž ํ˜ผํ•ฉ๋˜๋Š” ๊ฒฝ์šฐ ์šฐ์„ ์ˆœ์œ„ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ
  • ํ•ด๊ฒฐ๋ฒ•: ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด๋ผ!
let str1 = 'hello '; // ๋”๋ธ” ์ฟผํ…Œ์ด์…˜์œผ๋กœ ๋ฌธ์ž์—ด ํ‘œ๊ธฐ ๊ฐ€๋Šฅ
let num1 = 20;

console.log(str1 + num1 + 1000); // => ์ถœ๋ ฅ๊ฐ’: hello 201000
console.log(str1 + (num1 + 1000)); // ์ถœ๋ ฅ๊ฐ’: hello 1020

๋ถ„์„

console.log(str1 + num1 + 1000)์˜ ๋™์ž‘ ๊ณผ์ •

  1. str1(๋ฌธ์ž์—ด) + num1 (์ˆซ์ž)๋Š” ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ => ๋ฌธ์ž์—ด hello 20์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค
  2. hello 20(๋ฌธ์ž์—ด) + 1000(์ˆซ์ž) => ๋ฌธ์ž์—ด hello 201000์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค

console.log(str1 + (num1 + 1000)) , ๊ด„ํ˜ธ ์‚ฌ์šฉ

  1. ( )๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•ด์ค€๋‹ค
  2. ์šฐ์„ ์ˆœ์œ„๋กœ ์ธํ•ด num1(์ˆซ์ž) + 1000(์ˆซ์ž) => 1020์„ ์ถœ๋ ฅํ•œ๋‹ค
  3. str1(๋ฌธ์ž์—ด) + 1020(์ˆซ์ž) => hello 1020์„ ์ถœ๋ ฅํ•œ๋‹ค

var ํ˜ธ์ด์ŠคํŒ… ๋ฐ ์ด์Šˆ

  • ๋ณ€์ˆ˜ ์„ ์–ธ์ด ํ•จ์ˆ˜ ๋˜๋Š” ์ „์—ญ ์ฝ”๋“œ์˜ ์ƒ๋‹จ์— ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ โ€œํ˜ธ์ด์ŠคํŒ…(hoisting)โ€œ์ด๋ผ ๋งํ•œ๋‹ค.
// ์‹ค์ œ ์ฝ”๋“œ
bla = 2;
var bla;
console.log(2);

// ํ˜ธ์ด์ŠคํŒ… ์ ์šฉ๋œ ์ฝ”๋“œ
var bla;
bla = 2;
console.log(2);

ํ˜ธ์ด์ŠคํŒ… ์ด์Šˆ

  • var๋Š” JavaScript์—์„œ ์‚ฌ์‹ค์ƒ ์ „์—ญ์ ์ธ ๋ณ€์ˆ˜ ํ™œ์šฉ์˜ ํ‚ค์›Œ๋“œ๋กœ ์ดํ•ด ํ•˜๋ฉด ํŽธํ•˜๋‹ค.
// ์ „์—ญ
console.log(name); // undefined ์›๋ž˜๋Š” ReferenceError๊ฐ€ ๋ฐœ์ƒํ•ด์•ผ๋จ
var name = 'Mike';
console.log(name); // "Mike"

์œ„ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ด์ŠคํŒ…์˜ ๊ฐœ๋…์œผ๋กœ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค

var name; //โ†’ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๊ฐ€ ์ตœ์ƒ์œ„๋กœ ์˜ฌ๋ผ์™”๋‹ค
console.log(name); // name์ด๋ž€ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ์€ ๋์ง€๋งŒ ๊ฐ’์ด ์—†์–ด undefined๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค
name = 'Mike'; //โ†’ ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ’์€ ์˜ฌ๋ผ๊ฐ€์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ’์€ ํ• ๋‹นํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค
console.log(name); // Mike๋ž€ ๊ฐ’์ด ํ• ๋‹น๋˜์–ด Mike๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค