์ฝ๋์คํ ์ด์ธ ํ๋ก ํธ์๋ ๋ถํธ์บ ํ๋ฅผ ์์ํ์ง ์ผ์ฃผ์ผ์ด ์ง๋ฌ๋ค. ์ง๋์ฃผ๋ฅผ ๋ง์ง๋ง์ผ๋ก ์๋น์๊ฐ์์ด์๋ ๋ถ๋ค์ ์๋ฆฌ๊ฐ ๋์ง ์์ผ๋ฉด ๋ค์ ํ์ฐจ๋ก ๋์ด๊ฐ์ ์ผ ํ๋ ๊ฒ ๊ฐ๋ค. ์ด์ ๋ถํฐ ํ๋ก ํธ์๋ & ๋ฐฑ์๋ ๊ณผ์ ํจ๊ป ๋๊ธฐ๋ถ์ฌ ์ธ์ ์ ๋ค์์ ๋ ์ธ์์ด ์ข ์ค์๊ฒ ๊ฐ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ ๋๋์ด ์๋ฐ์คํฌ๋ฆฝํธ Unit์ผ๋ก ๋ค์ด๊ฐ๋ค! HTML๊ณผ CSS๋ฅผ ์ผ์ฃผ์ผ๋ก ๋ง๋ฌด๋ฆฌ๋ฅผ ํ๋ค๋..! ์ฒ์ ๋ฐฐ์๋ณธ ์ฌ๋์ด ์ ํ๋ฉด ์๊ฐ์ด ๋๋ฌด ๋ถ์กฑํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๋ ๋ํ ๋ ์ฌ๋ฐ๋ CSS์ ์๋ฏธ์๋ ๊ตฌ์กฐ๋ฅผ ์ํ HTML์ ๋ ๋ง์ด ๋ฐฐ์ฐ๊ณ ์ถ๊ธฐ๋ ํ์ง๋ง, ๊ฐ์ธ์ ์ผ๋ก๋ ์ผ๋ฅธ JS์React๋ฅผ ๋นจ๋ฆฌ ๋ค๋ฃจ๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
Section1 Unit5 [JavaScript] ๊ธฐ์ด - ์ฝ๋๊ธฐ์ด & ํ์ & ๋ณ์
๐ Chapter1. ์ฝ๋ ๊ธฐ์ด
• ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ต์ด ๋ธ๋ผ์ฐ์ ์์ ์คํํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก HTML, JavaScript ํ์ผ์ ํจ๊ป ๋ธ๋ผ์ฐ์ ์์ ์คํํด์ผ ์๋ํ๋ค. ํน์ ๋ฐ๋ก Node.js๋ผ๋ JavaScript ๋ฐํ์์ ์ปดํจํฐ์ ์ค์นํด์ผ ํ๋ค.
๋ค๋ฅธ ๋ถ๊ฐ์ ์ด๊ณ ๊ธฐ์ด์ ์ธ ๋ด์ฉ๊ณผ ์ฉ์ด ๋ฑ์ Chapter1 ์์ ๋ค๋ฃจ๊ณ ์์๋ค. ๋ธ๋ก๊ทธ์ ๊ตณ์ด ์ ๋ฆฌ๋ ์ํด๋ ๋ ๊ฒ ๊ฐ์์ ๋ด ๋ ธ์ ํ์ด์ง์๋ง ์ ๋ฆฌํด๋์๋ค :)
๐ Chapter2. ํ์
• ํ์ (type)์ ๊ฐ(value)์ ์ข ๋ฅ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ ํ์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๊ฐ ํ์ ์ ๊ณ ์ ํ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ค.
• ์ด๋ฒ ์ฑํฐ์์๋ Number
String
Boolean
ํ์
๋ง ๋ค๋ฃจ์๋ค.
• Number
์ซ์๋ฅผ ํํํ๊ธฐ ์ํ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ์ ์(integer)์ ์ค์(float)๋ฅผ ๋ชจ๋ ํํํ ์ ์๋ค.
100 // number
100 + 100 // 200
๋ํ์ ์ธ Math ๋ฉ์๋
Math.floor()
๊ดํธ ์์ ์ซ์๋ฅผ ๋ด๋ฆผํ์ฌ ๋ฐํ
Math.ceil()
๊ดํธ ์์ ์ซ์๋ฅผ ์ฌ๋ฆผํ์ฌ ๋ฐํ
Math.round()
๊ดํธ ์์ ์ซ์๋ฅผ ๋ฐ์ฌ๋ฆผํ์ฌ ๋ฐํ
Math.abs()
๊ดํธ ์์ ์ซ์์ ์ ๋๊ฐ์ ๋ฐํ
Math.sqrt()
๊ดํธ ์์ ์ซ์์ ๋ฃจํธ๊ฐ์ ๋ฐํ
Math.pow()
๊ดํธ ์์ ์ฒซ ๋ฒ์งธ ์ซ์๋ฅผ ๋ฐ, ๋ ๋ฒ์งธ ์ซ์๋ฅผ ์ง์์ธ ์ซ์๋ฅผ ๋ฐํ
Math.floor(100.621); // 100
Math.ceil(100.621); // 101
Math.round(100.621); // 101
Math.round(100.421); // 100
Math.abs(-100); // 100
Math.abs(100); // 100
Math.sqrt(4); // 2
Math.sqrt(2); // 1.4142135623730951
Math.pow(2, 5); // 32
• String
์์ฐ์ด๋ฅผ JavaScript์์ ํํํ๊ธฐ ์ํ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋ฐ์ดํ(’), ํฐ๋ฐ์ดํ(”), ๋ฐฑํฑ(`)์ผ๋ก ๊ฐ์ธ๋ฉด ๋๋ค.
"์ฌ๊ณผ" // String
"์๋
," + " ์๋ฐ์คํฌ๋ฆฝํธ!" // ์๋
, ์๋ฐ์คํฌ๋ฆฝํธ!
1 + "1" // 11
"์ฌ๊ณผ".length // 2 → length: ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ํ์ธํ ์ ์๋ค.
let str = 'codestates';
console.log(str[0]) // 'c'
console.log(str[4] // 's'
// → Index: ๊ฐ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ์ ์์นํ๋์ง ํ์ธํ ์ ์์ผ๋ฉฐ, 0๋ถํฐ ์์ํ๋ค.
๋ํ์ ์ธ String ๋ฉ์๋
toLowerCase()
๋ฌธ์์ด์ ์๋ฌธ์๋ก ๋ณ๊ฒฝ
toUpperCase()
๋ฌธ์์ด์ ๋๋ฌธ์๋ก ๋ณ๊ฒฝ
concat()
๋ฌธ์์ด์ ๊ฒฐํฉํ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํ
slice()
์์ ์ธ๋ฑ์ค๋ถํฐ ์ข
๋ฃ ์ธ๋ฑ์ค ๋ฐ๋ก ์๊น์ง์ ๋ฌธ์์ด์ ์ถ์ถํ ์ ๋ฌธ์์ด์ ๋ฐํ
indexOf()
๋ฌธ์์ด ๋ด์ ํน์ ๋ฌธ์๋ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ ์์นํ๋์ง ํ์ธ
includes()
๋ฌธ์์ด ๋ด์ ํน์ ๋ฌธ์๋ ๋ฌธ์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
'HELLO WORLD'.toLowerCase(); // 'hello world'
'hello world'.toUpperCase(); // 'HELLO WORLD'
'hello '.concat('world'); // 'hello world'
'hello world'.slice(0, 5); // 'hello'
'๐๐๐๐'.indexOf('๐'); // 0 → ์ฐพ๋ ๋ฌธ์๊ฐ 2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ, ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์์ ์ธ๋ฑ์ค ์กฐํ
'๐๐๐๐'.indexOf('๐ฅ'); // -1 → ์ฐพ๋ ๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ -1 ๋ฐํ
'๐๐๐๐'.includes('๐'); // true
'๐๐๐๐'.includes('๐ฅ'); // false
•Boolean
์ฌ์ค ๊ด๊ณ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํ ํ์ ์ผ๋ก true ํน์ false ๋ ์ค ํ๋์ด๋ค.
๐โ์๋ฐ์คํฌ๋ฆฝํธ์์ falsy๋ก ์ฌ๊ฒจ์ง๋ ๊ฐ
false
0
-0
0n
""
''
``
null
undefined
NaN
๋น๊ต์ฐ์ฐ์์ ๋ ผ๋ฆฌ์ฐ์ฐ์๋ ๋ค๋ฃจ์๋๋ฐ, ์ด ๋ถ๋ถ์ ๋ฐ๋ก ์ ๋ฆฌ๋ฅผ ํด๋ณด์๋ค. ๐
๐ Chapter3. ๋ณ์
• ๋ณ์(Variable)๋ ์ด๋ฆ์ด ๋ถ์ ์ ์ฅ์๋ฅผ ์๋ฏธํ๋ค. ๋ณ์๋ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ฆฌ๋ฅผ ์ก๊ฒ ๋๊ณ , ์ฌ๋ฌ ๊ฐ์ ๋ฃ์ ์ ์๋ค. ์ด๋ ๊ฒ ํ๋์ ๋ณ์๊ฐ ์๋ฆฌ ์ก๋ ๋์์ "๋ณ์๋ฅผ ์ ์ธ(Declaration)ํ๋ค." ๋ผ๊ณ ํ๋ค.
let name; // ๋ณ์์ ์ ์ธ
name = "fay" // ๋ณ์์ ํ ๋น
let age = "20" // ๋ณ์ ์ ์ธ๊ณผ ํ ๋น
let birth; // undefined → ์๋ฌด๊ฒ๋ ํ ๋น๋์ง ์์ ๋ณ์
• ๋ณ์ ๋ค์ด๋ฐ ๊ท์น์ ๋ํด์๋ ์์๋ณด์๋ค. ํจ์๋ ํด๋์ค๋ ๋ณ์๋ ๋ญ๋ ์ด๋ฆ์ ์ง๋ ๊ฒ์ ์ ๋ง ์ฝ์ง ์์ ๊ฒ ๊ฐ๋ค.
๋ณ์ ์ด๋ฆ์ ์ซ์๋ก ์์ํด์๋ ์๋๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ ์์ฝ์ด๋ ์ฌ์ฉํ ์ ์๋ค ๋ฑ์ ์ง์ผ์ผ ํ๋ ๋ช๋ช ๊ท์น๋ค์ด ์๋ค. ์๋์ ๋ฐ๋ก ์ ๋ฆฌํด๋ณด์๋ค. ๐
โ๏ธ ์ฐ์ต๋ฌธ์ .
์ค๋๋ถํฐ JS๋ฅผ ์ฌ์ฉํ ์ฐ์ต๋ฌธ์ ๋ฅผ ํ๊ฒ ๋์๋ค. ๊ธฐ์ด์ ์ธ ๋ถ๋ถ์ด๋ผ ์ด๋ ต์ง ์๊ฒ ๋๊ธธ ์ ์์๋๋ฐ, ๋ฌธ์ ํ๋๊ฐ ์กฐ๊ธ ๋งํ์ ๊ธฐ๋กํด๋ณผ๊น ํ๋ค. ๋ฌธ์ ๋ ์ผ๊ฐํ์ ์ธ ๋ณ์ ์ ๋ ฅ๋ฐ์ ์ง๊ฐ์ผ๊ฐํ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด๋ค.
function isPythagorean(side1, side2, side3) {
// TODO: ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
// ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ณฑ์ ๊ตฌํ๋ ์ธ๊ฐ์ง ๋ฐฉ๋ฒ
let a = side1 * side1;
let b = side2 ** 2;
let c = Math.pow(side3, 2);
return a == b + c || b == a + c || c == a + b
}
// ์ง๊ฐ์ผ๊ฐํ์ ๊ฐ์ฅ ํฐ ๋ณ(๋น๋ณ)์ ์ ๊ณฑ์ด ๋๋จธ์ง ๋ ๋ณ ๊ฐ๊ฐ์ ์ ๊ณฑ์ ํฉ๊ณผ ๋์ผ (ํผํ๊ณ ๋ผ์ค์ ์ ๋ฆฌ)
// ์๊ตฌ์ฌํญ: ์๋ฐ์คํฌ๋ฆฝํธ์์ x์ ์ ๊ณฑ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ 3๊ฐ์ง๋ฅผ ์ฌ์ฉํด์ ์์ฑ
๋๋ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ if๋ฌธ์ ํ์ฉํด์ ํธ๋ ๋ฐฉ๋ฒ๋ฐ์ ์๊ฐ์ด ๋์ง ์์๋ค. if๋ฌธ์ ์์ง ์ง๋๋ฅผ ์๋๊ฐ์ if๋ฌธ์ผ๋ก ํ์ดํ๋๊ฑด ์๋๊ฒ ๊ฐ์๋ฐ, ๋ผ๋ ์๊ฐ์ ์ข ๋ ๊ณ ๋ฏผ์ ํ๋ค๊ฐ ํ์ด๊ฐ ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๊ณ ํ์ด๋ฅผ ํด์ฃผ์ด์ ๊ทธ๊ฑธ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์๋ค. ์ธ ๋ณ ์ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋ฌด์์ธ์ง ์์์ผ ํ๋ค๋ ์๊ฐ์ด ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก์ ์๊ฐ์ ๋ง์๋ ๊ฒ ๊ฐ๋ค. ๋ฌธ์ ๋ฅผ ํธ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํด๋ณด๊ณ , ๊ทธ ์ค ๊ฐ์ฅ ์ ํฉํ๊ณ ๋ ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋๊ฑด ์ค์ํ ๊ฒ ๊ฐ๋ค.
๐ ์ค๋์ ํ๊ณ
๋๋์ด ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์์ํ ์ฒซ ๋ ! ์ฒซ ๋ ์ ๋ฌด๋ํ์ง๋ง, ์ฐ์ต๋ฌธ์ ํ๋๋ฅผ ํ์ดํ์ง ๋ชปํ๊ฒ ์กฐ๊ธ ์์ฌ์ ๋ค. ์๊ฐ์ ๋ฐฉํฅ์ด ํ ๊ณณ์ด ์๋ ์ฌ๋ฌ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ๋ค์ํ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋ ๊ฒ์ด ์ค์ํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ์ด์ฌํ ํ์ดํ ํด์ผ์ง ๐ช๐ป
์ผ๋ง ์ ์ ๋ดค๋ ์์์ด์๋๋ฐ, ์ค๋ ๋ผ์ด๋ธ์ธ์ ์์ ๋ณธ "์๋์์น ์๊ณ ๋ฆฌ์ฆ"๋ ์ฌ๋ฏธ์์๋ค. ์ฝ๋ฉ์ ์ด๋ป๊ฒ ์ ํ๋ฉด ์ข์์ง ์๊ฐํ๊ธฐ์ ์ข์ ์์์ธ ๋ฏ!
'Frontend Dev > ๐ฅ ์ฝ๋์คํ ์ด์ธ FE ๋ถํธ์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Section1 Unit5 JavaScript ๊ธฐ์ด - ํจ์ (0) | 2023.04.20 |
---|---|
Section1 Unit5 JavaScript ๊ธฐ์ด - ์กฐ๊ฑด๋ฌธ & ๋ฐ๋ณต๋ฌธ (0) | 2023.04.19 |
Section1 Unit4 HTML, CSS ํ์ฉ - ๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ (0) | 2023.04.17 |
Section1 Unit4 HTML, CSS ํ์ฉ (0) | 2023.04.14 |
Section1 Unit3 CSS ๊ธฐ์ด (0) | 2023.04.13 |