21.06.15 ๐จโ๐ป JS
TIL - 21.06.15
- ๋ณ์ (Variable)
- ์๋ฃํ (Data type)
- ํจ์ (Function)
- ์กฐ๊ฑด๋ฌธ (Condition)
1. ๋ณ์ (Variable)
๋ณ์๋ ์ด๋ ํ ๋ฐ์ดํฐ๋ฅผ ํ ๊ฐ์ผ๋ก ์ ์ธํ๋ ๊ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฉ๋๋ก ์ฌ์ฉํ๋ค.
let sunghoon;
sunghoon = "developer";
์๊ธฐ ์ฝ๋๋ sunghoon ์ด๋ผ๋ ๋ณ์๋ฅผ ์ ์ธ(Declaration)ํ๊ณ ์ ์ธํ ๋ณ์(Assignment)์ developer๋ผ๋ ๊ฐ์ ํ ๋น(Assignment)ํ๋ค๋ ๋ป์ผ๋ก,
let sunghoon = "developer";
์๊ธฐ ์ฝ๋์ ๊ฐ์ด ํ์ค๋ก ์์ฑ ๊ฐ๋ฅํ๋ค.
let ์ ๋น์ทํ ํค์๋๋ var ์ const๊ฐ ์๋๋ฐ
var์ ์ ์ธํ๋ ๋ณ์๋ฅผ ๋ค์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ ์ธ ํ ์ ์์ง๋ง, let๊ณผ const๋ ๋ค์ ์ ์ธ ํ ์ ์์ผ๋ฉฐ(์๋ฌ ๋ฐ์),
let์ ๋ณ์๋ฅผ ์ฌ์ง์ ํ ์ ์์ง๋ง, const๋ ์ฒ์ ์ ์ธํ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ฐ์ฅ ๋จผ์ ์ดํดํด์ผ ํ ๊ฒ์ '=(equal)'์ด '๋'์ด ์๋๊ณ ๊ฐ์ ๋ถ์ฌํ๋ ํ ๋น ์ฐ์ฌ์๋ผ๋ ๊ฒ ์ด๋ค.
์๊ธฐ sunghoon = "developer";๋ฅผ ์ฝ์๋ ์ฑํ์ ๋๋ฒจ๋กํผ๋ก ์ฝ๊ธฐ๋ณด๋จ ์ฑํ์ ๋๋ฒจ๋กํผ๋ฅผ ํ ๋น์ผ๋ก ์ฝ๋ ์ฐ์ต์ด ํ์ํ ๋ฏ ์ถ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ณ์๋ช
์ ์ ์๋ ๋ฐ์ด์ฐ๊ธฐ๋ฅผ ์ฐ์ง ์์ผ๋ฉฐ ๋ฐ์ด์ฐ๊ธฐ ๋ค์ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์ ๋๋ค๋ ์ฝ์(camelCase)์ด ์๋ค.
ex) let currentWriter = 1;
๋ง์ฝ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ ํ ๋นํ์ง ์์ผ๋ฉด, undefined ๋ผ๋ ๊ฐ์ด ํ ๋น๋๋ฉฐ ์ด ๊ฐ์ ํ์ ํ null๊ณผ ๋ค๋ฅธ ๊ฐ์ด๋ค.
2. ์๋ฃํ (Data type)
์๋ฃํ์ 7๊ฐ์ง๊ฐ ์์ผ๋ฉฐ
String - ๋ฌธ์์ด - '',"" ์ฌ์ด์ ๊ฐ
Number - ์๋ฐ์คํฌ๋ฆฝํธ์ ํ๊ณ(-(2^53 โ 1) ์ 2^53 โ 1์ฌ์ด์ ๊ฐ๋ง ํํ ๊ฐ๋ฅ)๋ก Number๋ Bigint๋ก ๋๋๋๋ฐ ์ซ์ ๋ค์ n\์ ๋ถํ๋ฉด Bigint๋ก ์ธ์๋๋ฉฐ ์ซ์ ํฌ๊ธฐ์ ํ๊ณ๊ฐ ์์ด์ง๋ค.
Boolean - ๋ถ๋ฆฌ์ธ(๋ถ๋ฆฐ) - ์ฐธ, ๊ฑฐ์ง์ ๊ฐ - ๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ ๋ฑ์์ ์ฌ์ฉ.
undefined - ์ง์ ๋์ง ์์, ๋ณ์์ ํ ๋นํ์ง ์์์๋ ํ ๋น๋จ.
null - ์ง์ ๋์ง ์์, ๋น ๊ฐ์ด๋ผ๋ ๊ฒ์ undefined์ ๊ฐ์ง๋ง, ๊ฐ์ ๋ฐ๋ก ํ ๋นํด์ผํ๋ ๊ฐ์ด๋ฉฐ, ์ฃผ๋ก ์ด๋ค ๋ณ์๋ฅผ ์ด๊ธฐํํ๋ ์ฉ๋๋ก ์ฌ์ฉ.
Symbol - HTML์ ID ๋น์ทํ ๊ฒ.
Object - ๊ฐ์ฒด, ์ฌ๊ธฐ์ ํจ์๋ ํฌํจ๋๋ค.
์ฌ๊ธฐ์ (undefined === null) = false ์ด๋ค.
3. ํจ์ (Function)
ํจ์๋ ์ฝ๊ฒ ๋งํด ์ง์์ฌํญ์ ๋ฌถ์์ด๋ค.
ํจ์์ ๊ตฌ์ฑ์ ํฌ๊ฒ ์
๋ ฅ๊ณผ ์ถ๋ ฅ์ผ๋ก ๋๋๋ค.
์
๋ ฅ์ ์์์ ๋งค๊ฐ๋ณ์(Parameter), ์ธ์(Argument)๊ฐ ์๊ณ ,
์ถ๋ ฅ์ ์์์ ๋ฐํ(Return)์ด ์๋ค.
function funcName(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2){
let sum = (๋งค๊ฐ๋ณ์1 + ๋งค๊ฐ๋ณ์2);
//๋ฐํ
return sum
}
// 4, 5๊ฐ ์ธ์์ด๋ค.
funcName(4,5) // 9
๋งค๊ฐ๋ณ์๋ ์ฝ๋๋ธ๋ญ ๋ด์์ ํจ์๋ฅผ ์ ๊ฐํ ๋ ์ฌ์ฉํ๊ณ
์ธ์๋ ํจ์๋ฅผ ์ ๊ฐ๋ ํจ์์ ๋์
ํ ๊ฐ์ด๋ค.
๋ง์ฝ return์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ํด๋น ํจ์๋ ์ด๋ค ์ธ์๋ฅผ ๋ฃ๋๋ผ๋ undefined๋ฅผ ์ถ๋ ฅํ๋ค.
ํจ์์ ์ ์ธ ๋ฐฉ์์ผ๋ก๋ ์ธ๊ฐ์ง๊ฐ ์๋๋ฐ
//ํจ์ ์ ์ธ์
function plus(num1, num2){
let sum = num1 + num2;
return sum;
}
//ํจ์ ํํ์
let plus = function(num1, num2){
let sum = sum1 + num2;
return sum;
}
// ํ์ดํ ํจ์
let plus = (num1, num2) => {
let sum = sum1 + sum2;
return sum;
}
//ํ์ดํ ํจ์๋ ์ฝ๋๋ธ๋ก ๋ด ์์์ด ํ๋์ผ ๋ ์ค๊ดํธ์ ๋ฆฌํด์ ์๋ตํ ์ ์๋ค.
let plus = (num1, num2) => (num1 + num2);
์๊ธฐ ์ธ๊ฐ์ ์๊ธด ๊ฑด ๋ฌ๋ผ๋ ํจ์๊ฐ ๋ด๊ณ ์๋ ์์ ์์ฒด๋ ๋์ผํ๋ค.
์ ์ธ์๊ณผ ๋ค๋ฅธ ๋ ๋ฐฉ์๊ณผ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ ์ ์ธ์์ ํธ์ด์คํ
์คํ์ ์ ๋ฌด์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฝ๋๋ฅผ ์คํํ ๋ ์ฒ์๋ถํฐ ๋๊น์ง ์ฝ์ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋ค์์ ์ถ๋ ฅ๋๋๋ฐ, ์ด ๊ณผ์ ์์ ๋ณ์์ ํจ์ ์ ์ธ์ ์ด๋ ์์น์ ์๋์ง ๊ฐ์ฅ ๋จผ์ ์ด๋ฃจ์ด์ง๋ค๊ณ ์๊ฐํ๋ฉด ํธํ๋ค.
function wannaBeInFuture(name){
let futureJob = name + ' wanna be a developer.';
return futureJob;
}
console.log(wannaBeInFuture('Sunghoon')); // Sunghoon wanna be a developer.
// ํจ์ ์ ์ธ์ด ํจ์ ํธ์ถ ๋ค์ ์์ง๋ง ์ ์์ ์ผ๋ก ์ถ๋ ฅ๋๋ค.
console.log(wannaBeInFuture('Sunghoon')); // Sunghoon wanna be a developer.
function wannaBeInFuture(name){
let futureJob = name + ' wanna be a developer.';
return futureJob;
}
ํธ์ด์คํ ๋๋ฌธ์ console.log์ ์์น์ ๊ด๊ณ์์ด ์ถ๋ ฅ์ ๋์ผํ๋ค.
๋ง์ฝ ํ์ ํ๋ ํจ์ ์๋ฆฌ์ ์ ์ธ์์ด ์๋๋ผ ํํ์ ํจ์๊ฐ ์์๋ค๋ฉด?
console.log(wannaBeInFuture('Sunghoon')); // Uncaught ReferenceError: wannaBeInFuture is not defined
let wannaBeInFuture = function(name){
let futureJob = name + ' wanna be a developer.';
return futureJob;
}
์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋ฌ๋ ํธ์ด์คํ ์ ํน์ฑ์ ์๊ฐํด์ ์ฝ๋๊ฐ ๊ผฌ์ผ ์ ์์ผ๋ ํจ์์ ์ธ์ ๋๋๋ก ์๋จ์, ํธ์ถ์ ํจ์์ ํ๋จ์ ์ ๋ ํธ์ด ์ข๋ค.
4. ์กฐ๊ฑด๋ฌธ (Condition)
์กฐ๊ฑด๋ฌธ์ ์๊ธฐ์ํด์ ์ฐ์ฐ์๋ฅผ ์ฐ์ ์์์ผ ํ๋๋ฐ,
๊ทธ์ค ๋น๊ต ์ฐ์ฐ์๋ผ๋ ๊ฒ์ด ์๋ค.
์ฐ์ฐ์๊ฐ ์ ๋ฒ ๋ง๊ธฐ ๋๋ฌธ์ <(<=), >(>=), ===, !== ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๋ค๊ฐ์ง๋ ๋จธ๋ฆฌ์ ์ฌ์ด๋๊ณ ๋๋จธ์ง๋ MDN์ ๋๋๋ค๋ฉฐ ๋์ ์ตํ๋ ํธ์ด ์ข์ ๋ฏ ํ๋ค.
์ด ์ฐ์ฐ์๋ค์ ์์์ผํ๋ ์ด์ ๋ ์ฐ์ฐ์๋ค๋ก ๋ถ๋ฆฌ์ธํ์ ์ ๊ฐ์ ๋ฝ์๋ผ ์ ์๊ธฐ ๋๋ฌธ์ธ๋ฐ
let age = 19; //
// age ๊ฐ์ด 19์ด๊ธฐ์ age < 19๋ ๊ฑฐ์ง์ด๋ฏ๋ก else๋ฅผ ์คํํ๋ค.
if(age<19){
console.log('์๋
!')
} else {
console.log('์๋
ํ์ธ์!')
}
๊ฐ๋จํ ์์ด์ง๋ง ์ด์ฒ๋ผ ๊ฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ค๋ฅด๊ฒ ์ถ๋ ฅ๋๋๋ก ํ ์ ์๋ค.
if(์กฐ๊ฑด1){ ์กฐ๊ฑด 1์ด ์ฐธ์ผ ๋ ์คํ.
} else if(์กฐ๊ฑด2) { ์กฐ๊ฑด1์ด ๊ฑฐ์ง์ด๊ณ ์กฐ๊ฑด2๊ฐ ์ฐธ์ผ ๋ ์คํ.
} else if(์กฐ๊ฑด3) { ์กฐ๊ฑด1, 2๊ฐ ๊ฑฐ์ง์ด๊ณ ์กฐ๊ฑด 3์ด ์ฐธ์ผ ๋ ์คํ.
} else { ์กฐ๊ฑด1, 2, 3 ๋ชจ๋ ๊ฑฐ์ง์ผ ๋ ์คํ.
}
๋น๊ต์ฐ์ฐ์์ ๊ฒฝ์ฐ NaN(Not a Number)์ ๋น๊ตํ ๊ฒฝ์ฐ ํญ์ false๋ฅผ ๋ฐํํ๋ค.
์ฐ์ฐ์์ ์ข
๋ฅ์ ๋
ผ๋ฆฌ ์ฐ์ฐ์๋ ์๋๋ฐ,
&&, ||, ! ๋ฑ์ด ๋ฐ๋ก ๊ทธ๊ฒ์ด๋ค.
๋
ผ๋ฆฌ ์ฐ์ฐ์๋ ๋ค๋ฅธ ํฌ์คํธ์ ๋ด์ฉ์ ์กฐ๊ธ ๋ ์ถ๊ฐํ์ผ๋ ๊ทธ ์ชฝ์ ๋ณด์.
&&๋ AND ์ฐ์ฐ์๋ก ์ฐ์ฐ์ ์ ์ชฝ์ ๊ฐ์ด ์ ๋ถ ์ฐธ์ด์ด์ผ ์ฐธ์ ์ถ๋ ฅํ๋ ์ฐ์ฐ์์ด๋ค.
ex) isFruit && isSweet -> ๊ณผ์ผ์๊ณผ ๋์์ ๋ฌ์์ผ ์ฐธ.
||๋ OR ์ฐ์ฐ์๋ก ์ฐ์ฐ์ ์ ์ชฝ์ ๊ฐ์ค ํ๋๋ง ์ฐธ์ด์ด๋ ์ฐธ์ ์ถ๋ ฅํ๋ ์ฐ์ฐ์์ด๋ค.
ex) isFruit || isVegetable -> ๊ณผ์ผ์ด๊ฑฐ๋ ์ฑ์๋ฉด ์ฐธ.
!๋ NOT ์ฐ์ฐ์๋ก ์ ์ ํ ๋ ์ฐ์ฐ์์ ํจ๊ป ์ฐ๋ ์ฐ์ฐ์์ธ๋ฐ, ๋ ์ฐ์ฐ์ ์ ์ชฝ์ ๊ฐ ์์ ๋ถ์ด ๋ถ์ ์ ์๋ฏธ๋ฅผ ํฌํจ์ํจ๋ค.
ex1) isFruit && !isSweet -> ๊ณผ์ผ์ด๋ฉด์ ๋ฌ์ง ์์์ผ ์ฐธ.
ex2) isFruit || !isVegetable -> ๊ณผ์ผ์ด๊ฑฐ๋ ์ฑ์๊ฐ ์๋์ด์ผ ์ฐธ. ์ฐธ์ธ๋? ์ฐธ์ธ๋กญ๋ค
์๊ฐํ๋ ๋น๊ต ์ฐ์ฐ์, ๋
ผ๋ฆฌ ์ฐ์ฐ์ ๋ง๊ณ ๋ ์ฐ์ ์ฐ์ฐ์, ๋ฌธ์์ด ์ฐ์ฐ์ ๋ฑ๋ฑ ์ ๋ง ๋ง์๋ฐ ์ ๋ถ ์ธ์ฐ๊ธฐ ๋ณด๋ค๋ ์ด ์๋ฆ๋ค์ด ์ฌ์ดํธ์ ์์ฃผ ๋ฐฉ๋ฌธํ๋ฉด์ ๋์ ์ตํ๋๊ฒ ๋์ ๋ฏ ํ๋ค.
๊ทธ๋ฐ๋ฐ ์ค๋ ๊ณต๋ถํ๋ฉด์ ๋์ ๊ฑฐ์ฌ๋ ธ๋ ์ฐ์ฐ์ ๋ช ๊ฐ์ง๋ง ์ถ๊ฐ๋ก ์ ๋ฆฌํ์๋ฉด,
%๋ ๋๋จธ์ง ์ฐ์ฐ์์ด๋ค. ์ฐ์ ์ฐ์ฐ์ ์ค ํ๋์ด๋ฉฐ ๋๋๊ณ ๋จ์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
ex) console.log(54 % 10) // 4
++๋ ์ฆ๊ฐ ์ฐ์ฐ์์ด๋ค. ์ญ์ ์ฐ์ ์ฐ์ฐ์ ์ค ํ๋์ด๋ฉฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ 1์ ๋ํ๋ ์ญํ ์ ํ๋ค.
๊ฐ์ ๋ฐํ์ํฌ๋ ์ซ์ ์์ ++๊ฐ ์ค๋๋ ๋ค์ ์ค๋๋์ ๋ฐ๋ผ์ ์ถ๋ ฅ์ด ๋ฌ๋ผ์ง๋๋ฐ, ์ ์ํ(++i)์ผ๋๋ 1 ๋ํ ๊ฐ์ ๋ฐ๋ก ๋ค์ ์ฝ๋๋ถํฐ ์ฌ์ฉํ๊ณ , ํ์ํ(i++)์ผ๋๋ ๋ฐํ๋๊ธฐ ์ ๊น์ง๋ ๊ธฐ์กด ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ค๊ฐ ๋ค์ ๋์๊ฐ์ ์ฝ๋ํ๊ณ ๋ด๋ ค์ฌ๋ 1 ๋ํ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ค.
let i = 0;
while(i<10){
console.log(i);
i++;
}
// ์ด ๊ฒฝ์ฐ i๊ฐ 0~9๊น์ง ์ถ๋ ฅํ๊ณ ์ถ๋ ฅ๋ ์ต์ข
i ๊ฐ์ 9์ด๋ค.
// ์ฆ๊ฐ ์ฐ์ฐ์๋ก 10์ด ๋ ๊ฒ์ ๋ง์ง๋ง, ํ์ํ์ด๋ฏ๋ก ๊ธฐ์กด ๊ฐ์ ์ถ๋ ฅํ๊ณ ํ์ฌ ๊ฐ์ ์ฝ๋ ์๋ก ์ฌ๋ผ๊ฐ์ ๋ชป ๋ด๋ ค์ค๊ธฐ ๋๋ฌธ.
let i = 0;
while(i<10){
console.log(i);
++i;
}
// ์ด ๊ฒฝ์ฐ i๋ 0~9๊น์ง ์ถ๋ ฅํ๊ณ ์ฝ์ ์์ ์ต์ข
i ๊ฐ์ 10์ด๋ค.
// ์ถ๋ ฅํ๋ ๋จ๊ณ๊ฐ ํด๋น ์ฝ๋๋ฅผ ์ง๋ ๋ค์ ์ฝ๋๋ถํฐ i๋ 10์ด ๋์๊ธฐ ๋๋ฌธ.
์๊ธฐ ๋๊ฐ์ ๋ฐ๋ณต๋ฌธ์์ ๋ ๋ค i = 10 ์ด๋ค.
?๋ ์ผํญ ์ฐ์ฐ์์ด๋ค. ์กฐ๊ฑด(์ผํญ) ์ฐ์ฐ์ ์ค ํ๋์ด๋ฉฐ ์กฐ๊ฑด ? ๊ฐ1 : ๊ฐ2์์ ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๊ฐ1๋ฅผ ๊ฐ์ผ๋ก, ๊ฑฐ์ง์ด๋ฉด ์กฐ๊ฑด2๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง๋ค.
ex) let grade = (score >= 60) ? "pass" : "fail"; // ์ ์(score)๊ฐ 60์ ์ด์์ด๋ฉด pass๋ฅผ ๋ฑ๊ธ์ ๊ฐ์ผ๋ก, 60์ ๋ฏธ๋ง์ด๋ฉด fail์ ๋ฑ๊ธ์ ๊ฐ์ผ๋ก ๊ฐ์ง๋ค.
ํํ์์ด ์๋ ๋ฌธ๋ฒ ๊ตฌ์กฐ(continue, break๋ฑ)์๋ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ทธ๋ ๊ธฐ์ ์ผํญ ์ฐ์ฐ์๋ฅผ if๋ฌธ ๋์ ์ฌ์ฉํ๋ ๊ฒ์ ์ง์ํ๋๊ฒ ์ข๋ค.
Truthy์ Falsy
Truthy๋ ์ฐธ ๊ฐ์ ๊ฐ, Falsy๋ ๊ฑฐ์ง ๊ฐ์ ๊ฐ์ด๋ค.
6๊ฐ์ง ๊ธฐ์ตํด์ผํ falsy ๊ฐ์ด ์๋๋ฐ,
false, null, undefined, 0, NaN, ''(๋น String) ์ด ๊ทธ๊ฒ์ด๋ค.
falsy์ ๋ฐ๋ ๊ฐ์ true ๊ฐ์ด๋ฉฐ truthy ์ ๋ฐ๋ ๊ฐ๋ false์ด๋ค.
(!falsy === true) = true, (!truthy === false) = true
GOOD ๐
์ค๋ ์ฒ์ ํ์ด๋ง ํ์๋๋ฐ, ์ฒซ ํ์ด ๋ถ์ด ์ข์ ๋ถ์ด๋ผ ๊ธฐ๋ถ์ด ์ข๋ค.
์ค๋ ๋ฐฐ์ด ๊ฒ์ ๋ค ๋ณต์ตํ๋ค! ๋ด์ผ ์ผ์ด๋๋ฉด ๊น๋จน์ ๋ฏ
BAD ๐ฅ
์ํ์ฝ๋ฉ.JS ๋๋ด๋ ค๊ณ ํ๋๋ฐ ํจ์ํ๋ฉด ํ์๋ก ๋ญ๊ฐ ๋ง์ด ๋์์ ๊ฐ์ฒด๋ ๋๋ณด์ง๋ ๋ชปํ๋ค.
์ฝํ๋ฆฟ ๋ฌธ์ ์ ๋นํด ํ์ด๋ง ํ ๋น์๊ฐ์ด ๋๋ฌด ๊ธธ์ด์ ๋นจ๋ฆฌ ๋๋ด๊ณ ์กฐ๊ธ ์ค๋ค. ์ปคํผ๊ฐ ์ ๋ค์ด
TO DO ๐ฅ
๋ด์ผ ์์นจ ์กฐ๊ฑด๋ฌธ ๋ค์ ํ๋ฒ ๋ณต์ต, ๋๋ด๊ณ ๋ฌธ์์ด ๊ณต๋ถํ๊ธฐ.
Retrospect ๐ง
๋ค๋ฅธ ๋๊ธฐ ๋ถ๋ค์ ์๊ฐ์ด ๋ง์ด ๋จ์๋ค๊ณ ํ์
จ๋๋ฐ ๋๋ ์๋ฃ ์ฐพ๊ณ ์ฌ๋ฌ๊ฐ ๋ณธ๋ค๊ณ ์๊ฐ์ด ์ข ๋ถ์กฑํ๋ค. ๋ฐฅ๋ 15๋ถ ๋ ๋จน์์ด
์ฝํ๋ฆฟํ๋๋ฐ ์ด๋ฆฌ๋ฒ๋ฆฌ๊น์ ์กฐ๊ธ ๋จธ์ฑํ๋ค.
ํจ์์์ ๋ฆฌํดํด์ผํ๋๋ฐ ์๋ฑํ ๊ฐ์ ์๊พธ ์ง์ด๋ฃ์ด์ ํ์ด๋์ ๋นํฉ์์ผฐ๋ค๐
๋ด์ผ์ ์ด๋ฆฌ๋ฒ๋ฆฌ๊น์ง๋ง๊ณ ๋ ์ง์คํ๊ณ ๋ ์ด์ฌํ ๊ณต๋ถํ์.
๋ธ๋ก๊น
ํ๋๋ฐ ๋๋ต 2์๊ฐ 30๋ถ..
์ง๊ธ ๋ฐฐ์ด๊ฒ ๋ณ๋ก ์๋๋ฐ๋ ์ด ์ ๋๋ฉด ์ฌํ ๊ณค๋ํด์ง๋ฏ ํ๋ค ๐ค
๋ณต์ตํ๋๊ฑด ์ข์ง๋ง ์ด๋ฐ ๋ฐฉ์์ ๋ธ๋ก๊น
์ด ๋ง๋ ๋ฐฉ์์ผ์ง ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค.
Reference ๐
https://developer.mozilla.org/
https://ko.javascript.info/
https://poiemaweb.com/
https://opentutorials.org/
https://www.zerocho.com/
์ ๋ฐฐ ๊ฐ๋ฐ์๋๋ค ๊ทธ๋์ ๋ฐ์ต๋๋ค
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(21.06.15 ๐จโ๐ป JS), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@planethoon/TIL-21.06.15-JS์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค