๐จ๐ปโ๐ป
Day 8 JS๋ณ์, var ํธ์ด์คํ ๊ฐ๋ ๊ณผ ์ด์
November 27, 2024
์๋ฐ์คํฌ๋ฆฝํธ ์์ฑ ์ ํ
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)์ ๋์ ๊ณผ์
- str1(๋ฌธ์์ด) + num1 (์ซ์)๋ ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ => ๋ฌธ์์ด hello 20์ ์ถ๋ ฅํ๊ฒ ๋๋ค
- hello 20(๋ฌธ์์ด) + 1000(์ซ์) => ๋ฌธ์์ด hello 201000์ ์ถ๋ ฅํ๊ฒ ๋๋ค
console.log(str1 + (num1 + 1000)) , ๊ดํธ ์ฌ์ฉ
- ( )๋ฅผ ์ฌ์ฉํจ์ผ๋ก ์ฐ์ ์์๋ฅผ ์ ํด์ค๋ค
- ์ฐ์ ์์๋ก ์ธํด num1(์ซ์) + 1000(์ซ์) => 1020์ ์ถ๋ ฅํ๋ค
- 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๋ฅผ ์ถ๋ ฅํ๋ค