๋น์ฃผ์ผ ์คํ๋์ค์์ html preview ์ฑ์ ์ค์นํ๋ฉด html์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋ฐ๋กํ ์ ์๋ค.
<div>๋ ์์ญ์ด๋ค.
์์ญ ํ๊ทธ ๋ด์๋ ์์ ์ ํ ์ ์๋ค.
๋ฌธ์ ์์์ ๋ฐ์ค ๋ด์ ์ฌ์ ๊ณต๊ฐ
margin : ๋ฐ๊นฅ ์ฌ์ ๊ณต๊ฐ(์ธ๋ถ ์ฌ๋ฐฑ)
padding: ๋ด๋ถ ์ฌ๋ฐฑ
background
๋ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ํฉ์ณ์ ํ๋์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋ง๋ค ์ ์๋ค.
Reference:
ํธ๋ค๋งํ ์ ์๋ ๊ฒ์ ์ด๋ป๊ฒ ํ ์ ์๋์ง ๊ณ ๋ฏผํด์ผ.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฒ์ ์ด ์์
๋ฒ์ ์ ๋ฐ๋ผ, ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ผ ์ฝ๋๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค.
์ด๋ค ๊ธฐ๋ฅ์ ์๋ฒ๊ฐ ์๋ ํด๋ผ์ด์ธํธ ์ชฝ ๊ธฐ๋ฅ์ ์ด๋ค.
๊ทธ๋์, ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅด๋ฉด ์ธ์ด๊ฐ ๋ค๋ฅผ ์ ์๊ณ ,
๋๋ฌด ์ต์ ์ธ์ด๋ฅผ ์ฐ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์ง์์ด ์๋ ์ ์์.
์๋ฐ๋ ์ฝ์์ฐฝ์์ ํํ์ ํ์ง๋ง
์๋ฐ์คํฌ๋ฆฝํธ๋ ์น ์ฝ์์์ ์ด๋ค.
์ ๋ฆฌํ๋ฉด
1. ๋ฒ์ ์ ํ๋ค.
2. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ณ์ ๋ณํํ ๊ฑฐ๋ค
3. ํ๋ฆ์์ฒด๋ ์๋ฐ์ ์ ์ฌํ๋ค.
<script> </script> ์ฌ์ด์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค!
๋ธ๋ผ์ฐ์ ์ ์ข ์์ ์ผ ์ ๋ฐ์ ์์
์ฃผ์์ฒ๋ฆฌ!
๋ชจ๋ ์ธ์ด๋ณ๋ก ์ฃผ์์ ๋ค๋ฅด๋ ํท๊ฐ๋ คํ์ง ์๊ธฐ!
์๋์ ๊ฒฝ์ฐ์ฒ๋ผ ํ๋ ๋๋ฌธ์ ์ ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋ ์ ์์
์ฐ์ ์ฐ์ฐ, ๋น๊ต, ๋ณ์ ์ ์ธ ๋ชจ๋ ๊ฐ๋ฅ!
์กฐ๊ฑด์ if๋ฌธ
์๋ฐ์คํฌ๋ฆฝํธ์ Hoisting(ํธ์ด์คํ )
์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ ๋ชจ๋ ๋ณ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋จผ์ ์ฌ๋ผ๊ฐ๋ค.
์ฌ์ค ์ค๋ ํ ๊ฒ๋ค์ ๋จธ๋ฆฌ ์์ ๋ฃ๊ณ ์์ผ๋ฉด ๋ฌผ๋ก ์ข๊ฒ ์ง๋ง
์ด๋ฐ ๊ธฐ๋ฅ์ด ์๋ค ์ ๋๋ง ์์๋๊ณ ,
๊ทธ๋ ๊ทธ๋ ์ฐพ์์จ๋ ๋ ๊ฒ ๊ฐ์ ๋๋์ธ๋ฐ...
HTML๊ณผ CSS๋ ์๋์ ํด๋์์ ๋์ค์ ์ฐพ์๋ณด๊ธฐ
JavaScript๋ ์๋์์ ์ฐพ์๋ณด๊ธฐ
์๋ฐ์์ ํ ๊ฒ์ด๋ผ ํฌ๊ฒ ๋ค๋ฅด์ง ์์๋ฏ
๊ณผ์ 1: Hoisting์ ๋ํ ์ ๋ฆฌ
hoist๋ ๊ฑด์ถ/๊ฑด์ค์ด๋ ํ๋ฌผ ์ด๋ฐ์ ์ฌ์ฉํ๋ ์ฅ๋น๋ก, ํ๋ฌผ ๋ฑ์ ๋ค์ด์ฌ๋ฆฌ๋ ์ ๋ฌด๋ฅผ ์ํํ๋ค.
์ฆ, ์๋์ ์์นํ ๊ฒ์ ์๋ก ๋์ด์ฌ๋ฆฌ๋ ์ญํ ์ ํ๋ ์ฅ๋น์ด์, '๋ค์ด์ฌ๋ฆฌ๋ค'๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ ํธ์ด์คํ ์ ์ฝ๋์ ์ ์ธ๋ ๋ณ์ ๋ฐ ํจ์ค๋ฅผ ์ฝ๋ ์๋จ์ผ๋ก ๋์ด์ฌ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค.
ํท๊ฐ๋ฆด ์ ์๋ ๋ถ๋ถ์,
๋ณ์์ ์ ์ธ๊ณผ ํ ๋น ๋ด์ฉ ๋ชจ๋๋ฅผ ์๋จ์ผ๋ก ๋์ด์ฌ๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ,
๋ณ์์ ์ ์ธ๊ณผ ํ ๋น์ด ๋์์ ์ผ์ด๋์ง ์๊ณ ๋ถ๋ฆฌ๋์ด
์ ์ธ๋ถ๋ถ๋ง ์ต์์๋ก ๋์ด ์ฌ๋ฆฐ๋ค.
* ์ ์ธ: ๋ณ์๋ฅผ ์ด๊ธฐํํ๋ ๊ตฌ๋ฌธ
* ํ ๋น: ๋ณ์์ ๊ฐ์ด ๋ถ์ฌ๋๋ ๊ฒ
์๋์ ๊ตฌ๋ฌธ์์,
์ผ๋ฐ์ ์ผ๋ก๋ผ๋ฉด ์๋ฌ๊ฐ ๋จ๊ฒ ์ง๋ง,
์๋์ ๊ตฌ๋ฌธ์ผ๋ก๋ถํฐ a1์ ์ ์ธ(์ด๊ธฐํ) ๋ถ๋ถ์ด ์๋จ์ผ๋ก ์ฌ๋ผ์ค๊ฒ ๋์ด
์๋ฌ๊ฐ ์๋ undefined(์ด๊ธฐํ๋ ์ํ)์ผ๋ก ๋ฌ๋ค!
ํธ์ด์คํ ์ ์ฐ์ ์์
๋ณ์ ๋ฐ ํจ์ ์ ์ธ์, ์ ์ธ ๊ตฌ๋ฌธ์ด ์ ํจ๋ฒ์์ ์ต์๋จ์ผ๋ก ํธ์ด์คํธ๋๋ค๋๊ฑธ ์ด์ ์์๋ค.
๊ทธ๋ฌ๋ฉด ๋ณ์ ์ ์ธ๊ณผ ํจ์ ์ ์ธ์ ์ฐ์ ์์๋?
๋ณ์ ์ ์ธ ๋จผ์ --> ๊ทธ ๋ค์ ํจ์ ์ ์ธ ํธ์ด์คํธ!
๊ณผ์ 2: ์๋ฐ์คํฌ๋ฆฝํธ ํจ์ ์ ์
์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋, ์ฝ๋๋ฅผ ๊ทธ๋ฃนํํ๊ณ ๋ฌถ์ด์ ์ ๋ฆฌํด์ฃผ๋ ์ญํ ์ ํ๋ค.
์ด ํ์๋ฅผ ๋์ค์ ์ธ์ ๋ ์ง ๊บผ๋ด์ ์ฌ์ฌ์ฉํ ์ ์๋ค.
ํจ์ ์ ์ธ
Javascript ์์ ํจ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ์ 3๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
- function statement ํจ์ ์ ์ธ๋ฌธ
- function expression ํจ์ ํํ์
- Function ์์ฑ์
๊ทธ ์ค ๋ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ํจ์ ์ ์ธ์ด๋ค.
function functionName() {
console.log('Hello World!');
};
function์ ํจ์ ์์ฑ์ ์๋ฆฌ๋ ๋ง์ด๋ค.
functionName์ ํจ์์ ์ด๋ฆ์ด์, ํด๋น ํจ์์ ์ฑ๊ฒฉ์ ์์ฝํ๋ค. (*๊ผญ ๋ค์ ๊ดํธ๊ฐ ๋ถ์ด์ผ ํ๋ค.)
์ค๊ดํธ ๋ด์ ๋ช
๋ น์ด๋ ํจ์๋ฅผ ๋ถ๋ฌ์์ ๋ ํจ๊ป ์คํ๋๋ค.
ํจ์ ๋ถ๋ฌ์ค๊ธฐ
ํจ์๋ ์๋์ ๋ฐฉ๋ฒ์ ํตํด ๋ถ๋ฌ์ฌ ์ ์๋ค.
console.log(functionName()); // Output: Hello, World!
console.log๋ฅผ ์คํ์์ผ ๊ทธ ์์ ํจ์๋ฅผ ๋ด์ผ๋ฉด, ํจ์๊ฐ ์คํ๋๋ค.
Parameter(๋งค๊ฐ๋ณ์) and Argument(์ธ์)
์ด๋ค ํจ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ๊ณ , ๊ทธ ๋งค๊ฐ๋ณ์๋ฅผ ํจ์ ์คํ์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
function calculateArea(width, height) {
console.log(width * height);
};
ํจ์๋ฅผ ์ ์ํ๋ ๊ดํธ ๋ด์ (width, height)๊ฐ ๋งค๊ฐ๋ณ์์ด๋ค.
๋งค๊ฐ๋ณ์๋ ํจ์ ์์์ ๋ณ์์ฒ๋ผ ์ด์ฉ๋๊ณ ์๋ค.
์ฝ๋๋ฅผ ๋ถ๋ฌ์ ์คํํ ๋๋, ์ด ๋งค๊ฐ๋ณ์๊ฐ ์ธ์์ ์ฑ๊ฒฉ์ ๊ฐ๋๋ค.
๋ณด๋ค ์ ํํ๊ฒ '๊ฐ์ผ๋ก์์ ์ธ์'์ ์ฑ๊ฒฉ์ ๊ฐ๋๋ค.
Default Parameter (๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์)
Default Parameter๋ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ฏธ๋ฆฌ ์ ํด๋๋ ๊ฒ์ด๋ค.
function greeting (name = 'stranger') {
console.log(`Hello, ${name}!`)
}
์ ํจ์์ฒ๋ผ name์ด๋ผ๋ ๋งค๊ฐ๋ณ์์ ๊ฐ์ด 'stranger'๋ผ๊ณ ๋ฏธ๋ฆฌ ์ง์ ํ์ ๋,
ํจ์ ๋ด์์ ๊ทธ๋ ์ด๋ธ ์
์ผํธ ๋ด์ ${}๋ฅผ ์ด์ฉํจ์ผ๋ก์ Default Parameter๋ฅผ ์ด์ฉํ ์ ์๋ค.
์ด Default Parameter๋ฅผ ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝํด์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ,
์๋์ ๊ฐ์ด ์๊ดํธ ๋ด์ ๋ค๋ฅธ ๋ฌธ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
greeting('Jean') // Output: Hello, Jean!
ํจ์ ํํ
ํจ์ ํํ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ฐ์ฑ์ ํ์ฉํ ํจ์ ์ ์ธ ๋ฐฉ์์ด๋ค.
const calculateArea = function(width, height) {
const area = width * height;
return area;
}
์์ ํจ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ํจ์์ ์ด๋ฆ์ ๋๊ฒ ์๋ต๋๋ค. ๋์ ๋ณ์์ ์ด๋ฆ์ ํตํด ๋์ ํจ์๋ฅผ ํน์ง์ง์ ์ ์๋ค. ์ด์ฒ๋ผ ์ด๋ฆ์ด ์๋ ํจ์๋ฅผ ๋ฌด๋ช ํจ์๋ผ๊ณ ํ๋ค.
์ด ํจ์๋ฅผ ๋ถ๋ฌ์ฌ ๋๋ ๋ณ์์ด๋ฆ๊ณผ ํจ์์ ์ธ์๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
calculateArea(width, height)
Arrow Functions (ํ์ดํ ํจ์)
Arrow Functions๋ 2015๋ ์ ์ ๋ฐ์ดํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ(ES6)์ ๊ธฐ๋ฅ ์ค ํ๋์ด๋ค. ES6๋ 2016๋ ๋ถํฐ ๋ธ๋ผ์ฐ์ ์ ์ ์ฉ๋๊ธฐ ์์ํ๋ค.
Arrow Functions๋ ๊ฐ๋จํ ๊ธฐํธ๋ก์ ํจ์๋ฅผ ํํํ๊ธฐ ๋๋ฌธ์ ํจ์๋ฅผ ์ ์ธํ ๋ 'function'์ด๋ผ๋ ๊ธ์๋ฅผ ์ฐ์ง ์์๋ ๋๋ค.
const rectangleArea = (width, height) => {
let area = width * height;
return area;
};
Arrow Functions๋ฅผ ํ์ฉํด ํจ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ์์ด ๋๋ฆฌ ํผ์ก๊ณ , ์ด ๋ฐฉ๋ฒ์ด ๋ค๋ฅธ ๊ฒ๋ณด๋ค ๊ฐํธํ๊ธฐ ๋๋ฌธ์ ์ ์ตํ๋ ๊ฒ์ด ์ค์ํ๋ค.
ํจ์ ๋ฐ๋ ๋ด์ ๋ช ๋ น๋ฌธ์ด ํ ์ค์ผ ๊ฒฝ์ฐ, ๋์ฑ ๊ฐ๋จํ๊ฒ ๋ฐ๊ฟ ์ ์๋ค.
const squareNum = (num) => {
return num * num;
};
// ์์ ํจ์๋ฅผ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํ ์ ์๋ค. (์๊ดํธ์ ์ค๊ดํธ, return ๋ช
๋ น์ด๊ฐ ์์ด์ก๋ค.)
const squareNum = num => num * num;
์ฐธ๊ณ :
https://m.blog.naver.com/tcloe8/221549773024
https://pks2974.medium.com/javascript%EC%99%80-function-%ED%95%A8%EC%88%981-a35281b56f8a
'PlayData > WebUI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Day20 | JavaScript] Function, Object (0) | 2021.12.08 |
---|---|
[Day 18 | Web] Media Tag , ๊ธฐํ ํ๊ทธ, CSS(์ ๋ฐ์ดํธ ํ์) (0) | 2021.12.06 |
[Day 19 | Web] HTML(ํนํ Table tag ์์ฃผ) (0) | 2021.12.03 |