TIL :: JavaScript / replit. 1~10
โ01. Introduction to JavaScript
โ ์๋ฆผ ์ฐฝ ๋์ฐ๊ธฐ
alert()
: ์๋ฆผ ์ฐฝ์ ๋์์ฃผ๋ ์ฝ๋.
: ์ฌ์ฉ์์๊ฒ ์๋ดํ๊ณ ์ถ์ ํ ์คํธ๋ฅผ ๋ณด์ฌ์ค๋ค.
alert();
alert("์๋
ํ์ธ์!");
โ console.log()
console.log()
: alert(); ํจ์์ ๋น์ทํ ์ญํ .
: ๊ฐ๋ฐ์๊ฐ ํ์ธํ๊ณ ์ถ์ ๋ด์ฉ ์ถ๋ ฅ! ('๊ฐ๋ฐ์ ๋๊ตฌ'๋ฅผ ํตํด ํ์ธ ๊ฐ๋ฅ.)
Assignment
์๋์ ๋์์๋ ์ฌํญ์ ์ดํํด์ฃผ์ธ์.
- ์ฝ์ ์ฐฝ์"I love wecode!" ๋ฉ์ธ์ง๊ฐ ์ถ๋ ฅ๋๋๋ก ํด์ฃผ์ธ์.
- ๊ธฐ์กด์ ์๋ ์ฝ๋๋ค์ ๋ชจ๋ ์ญ์ ํ๊ณ "I love wecode!" ๋ง ์ถ๋ ฅ๋๋๋ก ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
console.log("I love wecode!");
โ02. ์ฃผ์
โ ์ฃผ์ ํํ
//
: slash ๋ ๊ฐ(//)๋ก ์์ํ ์ค์ ์ฃผ์์ ๋๋ค.
/* ... */
: ์ฌ๋ฌ ์ค์ ํ ๋ฒ์ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ผ๋ฉด ์๋์ ๊ฐ์ด /* ๋ก ์์ํด์ */ ๋ก ๋๋ ๋๋ค.
โ03. ๋ณ์ (Variables)
var name = "๊น๊ฐ๋ฐ";
//var(ํค์๋), name(๋ณ์์ ์ธ), "๊น๊ฐ๋ฐ"(๋ณ์์ ํ ๋น๋ ๊ฐ)
var job = "frontend developer";
//var(ํค์๋), job(๋ณ์์ ์ธ), "frontend developer"(๋ณ์์ ํ ๋น๋ ๊ฐ)
โ ๋ณ์ ์ ํค์๋
var / let / const - ํค์๋
- var : ์ด์ ๋ฒ์ ์์ ์ฌ์ฉ๋จ.
- let
: ๋ณ์ ๊ฐ ์์ ๊ฐ๋ฅ.
: ๋ณ์ ์ด๋ฆ ์ค๋ณต ๋ถ๊ฐ, ๊ฐ์ ์ค๋ณต ๊ฐ๋ฅ.
: let ํค์๋๋ ๋ณ์๋ฅผ ์๋ก ์์ฑํ ๋ let ํค์๋ ์ฌ์ฉ. ๊ฐ์ ์์ ํ ๋๋ let ํค์๋ ์ฌ์ฉ ์ ํจ.
let name = "๊น๊ฐ๋ฐ";
let job = "frontend developer";
name = "๊น์ฝ๋ฉ"; //๊ฐ ์์ ํ ๋๋ let ํค์๋ ์ฌ์ฉx
job = "๋ชฉ์"; //๊ฐ ์์ ํ ๋๋ let ํค์๋ ์ฌ์ฉx
- const : ๋ณ์ ๊ฐ ์์ ๋ถ๊ฐ๋ฅ.
โ ๋ณ์(์ ์ธ, ํ ๋น) ๋ถ๋ฆฌ ๊ฐ๋ฅ
let address;
console.log('address : ', address);
//undefined
address = "์ ๋ฆ";
console.log('address : ', address);
//์ ๋ฆ
Assignment
์๋ ๊ณผ์ ๋ค์ ์ํํด์ฃผ์ธ์.
- index.js ์ variables ๋ผ๋ ํจ์๊ฐ ์์ต๋๋ค.
- ๊ทธ ์์ myAge ๋ผ๋ ๋ณ์๊ฐ ์ด๋ฏธ ์ ์ธ๋์ด ์์ต๋๋ค.
- yourAge ๋ผ๋ ๋ณ์๋ฅผ ์๋กญ๊ฒ ์ ์ธํ๊ณ ๋์ด๋ฅผ ํ ๋นํด์ฃผ์ธ์.
- myAge ์ yourAge ๋ณ์์ ํฉ์ด 50์ด ๋ ์ ์๋๋ก yourAge ์ ๊ฐ์ ์ ํด์ฃผ์ธ์.
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ์์ฑํ์๋ฉด ๋ฉ๋๋ค.
function variables() {
// ๋ค์ ์ฝ๋๋ ์์ ํ๊ฑฐ๋ ์ง์ฐ์ง ๋ง์ธ์.
const myAge = 21;
// ์๋์ ์ฝ๋๋ฅผ ์์ฑํด ์ฃผ์ธ์.
const yourAge = 29; // ๋ค์ ์ฝ๋๋ ์์ ํ๊ฑฐ๋ ์ง์ฐ์ง ๋ง์ธ์.
return myAge + yourAge;
}
console.log(variables());
// ์๋์ ์ฝ๋๋ ์ ๋๋ก ์์ ํ๊ฑฐ๋ ์ญ์ ํ์ง ๋ง์ธ์.
โ04~05. Function(ํจ์) - ๊ธฐ๋ณธ
ํจ์๋?
: ํ๋์ ํน์ ํ ์์ ์ ์ํํ๋๋ก ์ค๊ณ๋ ๋ ๋ฆฝ์ ์ธ ๋ธ๋ก.
โ ํจ์์ ๋ฐํ
: ๋ชจ๋ ํจ์๋ ๋ฐํ(return)์ ํฉ๋๋ค. ํจ์๋ ํญ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์์ ์ ์ฅํ ์๋ ์๊ณ , ๋ค๋ฅธ ๋ก์ง์ ๋ค์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
let result4 = noParameter(); // result4 ๋ผ๋ ๋ณ์์ noParameter ํจ์ ํธ์ถํ ๊ฒฐ๊ณผ๊ฐ์ ํ ๋น
console.log(result4); // console.log๋ก ํ์ธ
console.log(noParameter()); // ํธ์ถํ ํจ์๋ฅผ ๋ฐ๋ก console.log๋ก ํ์ธ ํ์ธ๋ ๊ฐ๋ฅ!
โ ๋ชจ๋ ํจ์๊ฐ return์ ํฌํจ ํด์ผํ๋๊ฑด ์๋๋ค. (return ํค์๋ ์๋ต ๊ฐ๋ฅ)
โ but, ์ด ๊ฒฝ์ฐ์๋ ํจ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐํํ๊ณ ์๋ค.
โ ๋ฐํ์ ์๋ตํ๋ฉด undefined๋ฅผ ๋ฐํํ๋ค.
โ ํจ์ - ๋งค๊ฐ๋ณ์(parameter) & ์ธ์(argument)
๋งค๊ฐ๋ณ์(parameter)
: ํจ์ ์ด๋ฆ ์, ( )์๊ดํธ ์๋ฆฌ์ ์ ํ ์๋ ๋จ์ด. ์ธ๋ถ๋ก๋ถํฐ ๋ค์ด์ค๋ ๊ฐ์ ๋ด์ ํจ์ ๋ด๋ถ์์ ์ฌ์ฉํ๋๋ก ํ๋ ๋ณ์์ ์ญํ
function getName(name) { // (name): ํ๋ผ๋ฏธํฐ
return name + '๋';
}
let result1 = getName('๊ฐ๋ฐ์'); // ('๊ฐ๋ฐ์'): ์ธ์
console.log(result1);
let result1 = getName('๊ฐ๋ฐ์'); // ('๊ฐ๋ฐ์'): ์ธ์
let result3 = getName('ํ๋ก ํธ์๋ ๊ฐ๋ฐ์'); // ('ํ๋ก ํธ์๋ ๊ฐ๋ฐ์'): ์ธ์
let result4 = getName('๋ฐฑ์๋ ๊ฐ๋ฐ์'); // ('๋ฐฑ์๋ ๊ฐ๋ฐ์'): ์ธ์
//*๋ฐํ ๊ฐ์ ์ ์ฅํด๋๋ฉด ์ฌ๋ฌ๋ฒ ํธ์ถํ ์ ์๋ค.
Assignment
์๋์ ์ค๋ช ์ ์ฝ๊ณ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ํจ์ ์ด๋ฆ์ checkYear๋ก ํด์ฃผ์ธ์.
- ์ฌํด ๋ ๋๋ฅผ return ํฉ๋๋ค.
- ๋ ๋๋ฅผ ์์ฑํ ๋๋ ""(์๋ฐ์ดํ)์์ด ์ซ์๋ง 4์๋ฆฌ ์จ์ฃผ์ธ์.
// Assignment ๋ฅผ ์์ฑํด์ฃผ์ธ์.
function checkYear() {
let thisYear = 2022;
return thisYear;
}
Assignment
ํจ์ ์์ฑ์ ์ต์ํด์ง์ จ๋์? ์๋์ ์ค๋ช ์ ๋ฃ๊ณ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ํจ์ ์ด๋ฆ์ addTen ์ ๋๋ค.
- ๋ฐ์ parameter์ 10์ ๋ํด์ ๋ฐํ(return)ํด์ฃผ์ธ์.
function addTen(num) {
return num + 10;
// ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์
}
let result = addTen(20)
console.log (result);
โ06. Math Expressions
let myNumber1 = 6;
let myNumber2 = 3+3;
let a = 1.3;
let b = 2;
let c = -10;
console.log(a + b); // 3.3
console.log(b * c / 10); // -2
console.log(a + 10); // 11.3
console.log(450 - 30); // 420
console.log(a + 10 * b * b / 2 + 3); // 24.3
โ ์์ํ ์ํ ํํ์
- num++ = +1
- num-- = -1
let num = 1;
num++; // num+1 ๊ณผ ๊ฐ๋ค.
console.log(num); // 2
let num = 1;
let newNum = num++;
console.log(num); // 2
console.log(newNum); // 1
// 1๋จ๊ณ : newNum ๋ณ์์ num๋ณ์๋ฅผ ํ ๋นํด์ newNum์ 1์ด ํ ๋น ๋์๊ณ
// 2๋จ๊ณ : ๊ทธ ํ num++; ๊ฐ ์คํ๋์ด ๋ณ์ num์ด 2๊ฐ ๋์์ต๋๋ค.
Assignment
- index.js ์ ์์ฑ ๋์ด ์๋ mathExpression ํจ์์ ๊ฒฐ๊ณผ ๊ฐ์ด 22๊ฐ ๋์ค๋๋ก ์์ ํด ์ฃผ์ธ์.
๐ง Hint
10 + 2 * 3
์ด ์์์ ์ค์ ํ๊ต๋ฐฐ์ ๋ ์ํ๊ณ์ฐ๊ณผ ๊ฐ์ด,
*(๊ณฑํ๊ธฐ), /(๋๋๊ธฐ) ๊ณ์ฐ์ ๋จผ์ ํ๊ณ +(๋ํ๊ธฐ), -(๋นผ๊ธฐ)๋ ๊ณ์ฐ์์ ์ฐ์ ์์๊ฐ ๋์ค ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ณด๊ธฐ์ข๊ฒ ํํํ๋ฉด ์์ ์์์ ์๋์ ๊ฐ์ต๋๋ค.
10 + (2 * 3) = 10 + 6 = 16 ์ด๋ ๊ฒ ํ์ฌ 16์ด๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ๋์์ต๋๋ค.
ํน์ 36์ด๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ์ถ๋ค๋ฉด, () ํ๊ธฐ๋ก ๋จผ์ ๊ณ์ฐํ ์์์ ๋ฌถ์ด์ค ์ ์์ต๋๋ค. (10 + 2) * 3 = 12 * 3 = 36
์ ๋๋ค!
// ์ฝ๋๊ฐ ๊ณ์ ์๋๋ก ๋ด๋ ค๊ฐ๋ ๊ด์ฐฎ์ต๋๋ค.
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ์์ฑํด ์ฃผ์ธ์.
function mathExpression() {
// ๋ค์ ์ฝ๋์ ๊ฐ์ด 22๊ฐ ๋๋๋ก ์์ ํด์ฃผ์ธ์.
let result = (5 + 6) * (10 / (2 * 2.5));
// ๋ค์ ์ฝ๋๋ ์์ ํ์ง ๋ง์ธ์!
return result;
}
console.log(mathExpression())
โ07. ํ ์คํธ ๋ฌธ์์ด์ ์ฐ๊ฒฐ
Assignment
- index.js ์ textConcatenation ํจ์๋ฅผ ์์ ํ์ฌ์ ๋ค์ ๋ฌธ์ฅ์ด ๋ฆฌํด ๋ ์ ์๋๋ก ํด์ฃผ์ธ์.
"2 ๋ํ๊ธฐ 2๋ 4"
- hint : ๋ค์ 2 + 2 ์ํ์์ด ๋จผ์ ๊ณ์ฐ๋๋๋ก ๋ฌถ์ด์ฃผ์ธ์.
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function textConcatenation() {
// ๋ค์ ์ฝ๋๋ฅผ ์์ ํ์ฌ
// ์๋์ ๋ฌธ์ฅ์ด ์ฌ๋ฐ๋ฅธ ๊ฐ์ด ๋ ์ ์๋๋ก ํด์ฃผ์ธ์.
let text = "2 ๋ํ๊ธฐ 2๋ " + (2 + 2);
// ๋ค์ ์ฝ๋๋ ์์ ํ์ง ๋ง์ธ์!
return text;
}
alert(textConcatenation())
โ08. if๋ฌธ (์กฐ๊ฑด๋ฌธ)
: ๋ง์ฝ์ ~ํ๋ฉด ~ํ๋ค. ๊ฐ ์ปดํจํฐ๋ก ๋ฐํ๋ ๊ฒ.
let answer = 3 + 3;
if (answer > 5) {
alert("5๋ณด๋ค ํฐ ์ซ์!");
} else {
alert("5๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ซ์!");
}
* ์กฐ๊ฑด๋ฌธ์ ์์์ ๋ถํฐ ์ฐจ๋ก๋๋ก ์กฐ๊ฑด์ ์ฒดํฌํ๋ฉฐ ๋ด๋ ค์จ๋ค!
let answer = 3 + 3;
if (answer > 15) {
alert("15๋ณด๋ค ํฐ ์ซ์!");
} else if (answer > 10) {
alert("10๋ณด๋ค ํฐ ์ซ์!");
} else if (answer > 5) {
alert("5๋ณด๋ค ํฐ ์ซ์!");
} else {
alert("5๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ซ์!");
}
Assignment
์กฐ๊ฑด์ ๋ง๊ฒ ํจ์๋ฅผ ๊ตฌํํด์ฃผ์ธ์.
- myFavoriteColor ํจ์๋ "์๊น"์ ์ธ์๋ก ๋ฐ๊ณ 3๊ฐ์ง ๊ฒฐ๊ณผ ๊ฐ์ ๋ฆฌํดํฉ๋๋ค.
- if๋ฌธ์ ์ฌ์ฉํด ๋ค์ ์กฐ๊ฑด์ ๋ง๊ฒ ํจ์๋ฅผ ๊ตฌํ ํด์ฃผ์ธ์.
- color ๊ฐ "navy" ์ด๋ฉด "Good!" ๋ฆฌํด
- color ๊ฐ "yellow" ์ด๋ฉด "Bad!" ๋ฆฌํด
- ๊ทธ ์ธ์ ๊ฒฝ์ฐ "Whatever!" ๋ฆฌํด
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function myFavoriteColor(color) {
if(color === "navy"){
return "Good!";
}else if(color === "yellow"){
return "Bad!";
}else{
return "Whatever!";
}
}
let whatColor = myFavoriteColor("navy");
console.log(whatColor);
โ09. ๋น๊ต ์ฐ์ฐ์
: ์ฐ์ฐ์ ์์ชฝ์ ์๋ ๋๊ฐ. ์ฆ, ์ขํญ๊ณผ ์ฐํญ์ ๋น๊ตํ๋ ์ฐ์ฐ์.
- ๋์น์ฐ์ฐ์ : ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ๋น๊ต
์ผ์น : == , ===
๋ถ์ผ์น : != , !==
- ๊ด๊ณ์ฐ์ฐ์ : ๋ฌธ์์ด๊ณผ ์ซ์ ๋ฐ์ดํฐํ์ ์ ๋น๊ต
> , < , >= , <=
Assignment
index.js๋ฅผ ๋ณด๊ณ ์๋ ์กฐ๊ฑด์ ๋ง๋ ํจ์๋ฅผ ๊ตฌํํด์ฃผ์ธ์.
- ์ฐ๋ฆฌ๋๋ผ๋ 20์ด ๋ถํฐ ์ ์ ๋ง์ค ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋๋ผ ์ฌ๋๋ค์ด ๊ฐ์ฅ ์ฆ๊ฒจ๋ง์๋ ์ ์ ์์ฃผ ์ ๋๋ค.
- canIDrinkSoju ํจ์ ์์ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ๊ฒฝ์ฐ๋ค์ด ๊ตฌํ๋ ์ ์๋๋ก ํด์ฃผ์ธ์.
- age ๊ฐ 20์ด ๋ณด๋ค ์ด๋ฆฌ๋ฉด: "์ ์ผ ๊ฐ์ ๊ณต๋ถ๋ ํด๋ผ!" ๋ฆฌํด
- age ๊ฐ 50์ด ์ด์์ด๋ฉด: "๊ฑด๊ฐ์ ์ํด์ ์ ์ ์ ๋นํ ๋ง์์ธ์!" ๋ฆฌํด
- ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋: "์์ฃผ์๋ ๊ณฑ์ฐฝ ์ด๋ ์ ๊ฐ์?" ๋ฆฌํด
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function canIDrinkSoju(age) {
if (age < 20) {
return "์ ์ผ ๊ฐ์ ๊ณต๋ถ๋ ํด๋ผ!";
} else if (age >= 50) {
return "๊ฑด๊ฐ์ ์ํด์ ์ ์ ์ ๋นํ ๋ง์์ธ์!";
} else{
return "์์ฃผ์๋ ๊ณฑ์ฐฝ ์ด๋ ์ ๊ฐ์?";
}
}
let yourAge = canIDrinkSoju(10);
console.log(yourAge)
โ10. ๋ ผ๋ฆฌ์ฐ์ฐ์
|| : or
&& : AND
! : NOT
Assignment
index.js์ ์๋ ๊ฐ์ ๋ฐ์ ๋ณด ๊ฒ์ ํจ์๋ฅผ ์๋ ์กฐ๊ฑด์ ๋ง๊ฒ ๊ตฌํํด์ฃผ์ธ์.
- rockPaperScissors ํจ์๋ฅผ ๊ตฌํํด์ ๊ฐ์ ๋ฐ์ ๋ณด ๊ฒ์์ ๊ตฌํํด์ฃผ์ธ์.
- ๊ฐ๋ฅํ๋ฉด || ์ && ์ฐ์ฐ์ ๋๋ค ์ฌ์ฉํด์ฃผ์ธ์.
- player1๊ณผ player2 ์ค ์ด๊ธด ์ฌ๋์ด ๋๊ตฐ์ง ๋ฆฌํดํด์ฃผ์ธ์.
- ์๋ฅผ ๋ค์ด, player1์ด ์ด๊ฒผ์ผ๋ฉด "player1" ์ด ๋ฆฌํด ๋๊ณ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ผ๋ฉด "player2"๊ฐ ๋ฆฌํด์ด ๋์ด์ผ ํฉ๋๋ค.
- ๋ง์ผ ๋น๊ธฐ๋ ๊ฒฝ์ฐ์๋ ๋ฌด์กฐ๊ฑด "player1"์ด ๋ฆฌํด ๋์ด์ผ ํฉ๋๋ค.
- player1 ๊ณผ player2 ์ ๊ฐ์ ๋ค์ ์
์ค ํ๋ ์
๋๋ค.
- "๊ฐ์"
- "๋ฐ์"
- "๋ณด"
- ์๋ฅผ ๋ค์ด, player1์ "๊ฐ์" ์ด๊ณ player2๋ "๋ณด" ์ด๋ฉด "player1" ์ด ๋ฆฌํด ๋์ด์ผ ํฉ๋๋ค.
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function rockPaperScissors(player1, player2) {
// ์์:
if ( (player1 === "๊ฐ์" && player2 === "๋ณด" )
|| (player1 === "๋ฐ์" && player2 === "๊ฐ์")
|| (player1 === "๋ณด" && player2 === "๋ฐ์")
|| (player1 === "๊ฐ์" && player2 === "๊ฐ์")
|| (player1 === "๋ฐ์" && player2 === "๋ฐ์")
|| (player1 === "๋ณด" && player2 === "๋ณด")
) {
return "player1";
} else {
return "player2";
}
}
let yourChoice = (rockPaperScissors("๊ฐ์", "๊ฐ์"));
console.log(yourChoice)