TIL :: JavaScript / replit. 11~20
โ11. Function(ํจ์) - ๋ฐ์ดํฐ ๋ฐ๊ธฐ
โ ๏ธ ์ฃผ์ ์ฌํญ
ํจ์ ๋ด๋ถ์์ ์ธ์๋ก ๋ฐ์ ๋ณ์์ ์๋ก์ด ๊ฐ์ ๋ฃ์ผ๋ฉด ์ ๋ฉ๋๋ค.
Assignment
index.js๋ฅผ ๋ณด๊ณ ์๋ ์กฐ๊ฑด์ ๋ง๋ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ๋ฐ๋ isbiggerThanHundred ์ด๋ผ๋ ์ด๋ฆ์ ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
- isbiggerThanHundred ํจ์์์ ๋ฐ์ argument๋ฅผ myNumber๋ผ๋ parameter์ ์ ์ฅํด์ฃผ์ธ์.
- isbiggerThanHundred ํจ์์์
- myNumber๊ฐ 100๋ณด๋ค ํฌ๋ฉด "ํฌ๋ค!"๋ผ๋ ๋ฌธ์์ด์ return ํด์ฃผ์ธ์.
- myNumber๊ฐ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด "์๋ค!"๋ผ๋ ๋ฌธ์์ด์ return ํด์ฃผ์ธ์.
// Assignment
// ์๋์ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์.
function isbiggerThanHundred(num) {
if(num > 100){
return "ํฌ๋ค!";
}else if(num<=100){
return "์๋ค!";
}
}
let myNumber = isbiggerThanHundred(10);
console.log(myNumber)
โ12. Function(ํจ์) - parameter, argument
โ ๋งค๊ฐ ๋ณ์(parameter)
: ํจ์๋ฅผ ์ ์ ํ๋ฉด์, ํจ์ ์ ์ธ์์ ๊ดํธ()์์ ์ด๋ค ๋ณ์๋ช ์ ์ฐ๋ฉด, ์ฐ๋ฆฌ๋ ๊ทธ๊ฑธ ๋งค๊ฐ๋ณ์ ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๋งค๊ฐ ๋ณ์๋ ๊ทธ ์ด๋ฆ์ฒ๋ผ ์ค์ ๋ก ํจ์ ์์ชฝ์์ ๋ณ์์ ๊ฐ์ ์ญํ ์ ํ๊ฒ ๋ฉ๋๋ค. ํจ์๊ฐ ํธ์ถ๋ ๋ ๊ฐ์ ์ ๋ฌ๋ฐ๊ฒ ๋๋ฉด ๋งค๊ฐ ๋ณ์์ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
โ ์ธ์(argument)
: ์ด๋ค ํจ์๋ฅผ ํธ์ถํ๋ฉด์, ํธ์ถ๋ฌธ์ ๊ดํธ ์์ ์ด๋ค ๊ฐ ๋๋ ๊ฐ์ด ์ ์๋ ๋ณ์๋ฅผ ์ฐ๋ฉด, ์ฐ๋ฆฌ๋ ๊ทธ๊ฑธ ์ธ์ ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ํจ์์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ด๋ ์ํ๋ผ๋ฉด, ํธ์ถ์ ์ธ์๋ก ์ ๋ฌํ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
Assignment
โ๏ธ Assignment 1 : ํจ์ halfNumber ๋ฅผ ์ ์ธํ๊ณ ๊ตฌํํ์ธ์.
- ์ซ์๋ก ๋ ์ธ์ ํ๋๋ฅผ ๋ฐ์ต๋๋ค.
- ๋ฐ์ ๊ฐ์ 2๋ก ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํฉ๋๋ค.
- ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ๋ง์๋๋ก ์ ํด์ ์ฌ์ฉํฉ๋๋ค.
โ๏ธ Assignment 2 : ํจ์ halfAndAddNumber๋ฅผ ์ ์ธํ๊ณ ๊ตฌํํ์ธ์.
- ์ซ์๋ก ๋ ์ธ์ ํ๋๋ฅผ ๋ฐ์ต๋๋ค.
- 1๋ฒ ๋ฌธ์ ์์ ๋ง๋ค์๋ halfNumber๋ฅผ ํธ์ถํ๋ฉด์, ์ธ์๋ก ๋ฐ์๋ ๊ฐ์ ๋ค์ halfNumber ํจ์์ ์ ๋ฌํด์ค๋๋ค.
- halfNumber์ ๋ฆฌํด๊ฒฐ๊ณผ๋ฅผ ํจ์ ์์ชฝ์์ ๋ณ์๋ช result์ ์ ์ํฉ๋๋ค.
- result์ 1์ ๋ํ ๊ฐ์ ๋ฆฌํดํฉ๋๋ค.
// Assignment ์๋์์ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์
function halfNumber(value) {
return value / 2;
}
halfNumber(6);
function halfAndAddNumber(value) {
let result = halfNumber(value)
return result + 1;
}
console.log(halfAndAddNumber(10));
โ13. Function(ํจ์) - ์ฌ๋ฌ ์ธ์
: ํจ์์ ์ธ์๊ฐ ํ ๊ฐ๊ฐ ์๋ ์ฌ๋ฌ ๊ฐ ์ ๋ฌํ ์๋ ์์ต๋๋ค.
function alertSuccess(month, name) {
alert(month + "์์ ๋น์ฒจ์๋ " + name + "์
๋๋ค.");
}
alertSuccess(3, "๊น๊ฐ๋ฐ");
Assignment
index.js์์ meetAt ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
- ์ธ์๋ฅผ ์ธ๊ฐ ๋ฐ์ต๋๋ค.
- ์ฒซ๋ฒ์งธ ์ธ์๋ ๋ ๋์ ํด๋นํ๋ ์ซ์์ ๋๋ค.
- ๋๋ฒ์งธ ์ธ์๋ ์์ ํด๋นํ๋ ์ซ์์ ๋๋ค.
- ์ธ๋ฒ์งธ ์ธ์๋ ์ผ์ ํด๋นํ๋ ์ซ์์ ๋๋ค.
- ๋ ๋ ์ธ์๋ง ๋ฐ์์ ๊ฒฝ์ฐ → "1234๋ " ๊ณผ ๊ฐ์ ํ์์ ๋ฌธ์์ด์ ๋ฆฌํด ํด์ฃผ์ธ์.
- ๋ ๋,์ ์ธ์๋ฅผ ๋ฐ์์ ๊ฒฝ์ฐ → ๋ ๋์ ์์ ์กฐํฉํด์ "1234๋ 5์" ๊ณผ ๊ฐ์ ํ์์ ๋ฌธ์์ด์ ๋ฆฌํด ํด์ฃผ์ธ์.
meetAt(2022); // ๊ฒฐ๊ณผ --> "2022๋
"
meetAt(2032, 3); // ๊ฒฐ๊ณผ --> "2032๋
3์"
meetAt(1987, 10, 28); // ๊ฒฐ๊ณผ --> "1987/10/28"
// Assignment. ์๋์ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์.
function meetAt(year, month, date) {
if(date) { return year + '/' + month + '/' + date;}
if(month) { return year + '๋
' + month + '์';}
if(year) { return year + '๋
';}
}
console.log(meetAt(2020))
console.log(meetAt(2020,5))
console.log(meetAt(2020,5,16))
โ14. Function(ํจ์) - ๋ฐ์ดํฐ ๋ฐํํ๊ธฐ(2)
โ ํจ์ ๋ด๋ถ์์ ๋ค๋ฅธ ํจ์ ํธ์ถํ๊ธฐ
function getTax(price) {
return price * 0.1;
}
function calculateTotal(price) {
return price + getTax(price);
}
const result = calculateTotal(3500);
console.log(result);
์ด๋ ๊ฒ ํจ์ ์์์ ๋ ํจ์๋ฅผ ํธ์ถํ ์๋ ์์ต๋๋ค. calculateTotal ํจ์ ๋ด๋ถ์์ getTax๋ฅผ ๋ ํธ์ถํ์ต๋๋ค. ํจ์๊ฐ ์คํ๋๋ ์์ ์ ํจ์๋ฅผ ํธ์ถํ๋ ์๊ฐ์ด๊ฒ ์ฃ ? ์ ์ฝ๋์์ function์ผ๋ก ํจ์๋ฅผ ์ ์ธํ๋ ๋ถ๋ถ์ "์ด๋ฐ ํจ์๊ฐ ์๋ค"๊ณ ์ ์ธํด์ค ๊ฒ ๋ฟ์ ๋๋ค. ํจ์๊ฐ ์คํ๋๋ ์์ ์ ๋ฐ๋ก calculateTotal(3500)์ผ๋ก ํธ์ถ ํ์ ๋ ์ ๋๋ค.
Assignment
index.js์์ getTotal ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
getTotal ํจ์๋ ๊ฐ๊ฒฉ์ 2๊ฐ ๋ฐ์์ calculateTotal ํธ์ถ ๋ฐํ๊ฐ์ ๋ํด์ ๋ฆฌํดํ๋ ํจ์์ ๋๋ค.
- getTotal ์ด๋ผ๋ ์ด๋ฆ์ ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์. ๊ฐ๊ฒฉ์ ๋ณด 2๊ฐ๋ฅผ ์ธ์๋ก ๋ฐ์ต๋๋ค.
- ์ธ์์ด๋ฆ์ ์ํ๋๋๋ก ์ง์ด์ฃผ์ ๋ ๋ฉ๋๋ค.
- getTotal ํจ์์์ ์ธ์๋ก ๋ฐ์ ๊ฐ๊ฒฉ์ผ๋ก ๊ฐ๊ฐ calculateTotal ํจ์๋ฅผ ํธ์ถํด์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ ๋ํด์ ๋ฐํํด์ฃผ์ธ์.
์ฐธ๊ณ ์ฌํญ
- getTax ํจ์๋ ๊ฐ๊ฒฉ์ tax๋ฅผ ๊ตฌํ๋ ํจ์์ ๋๋ค.
- calculateTotal ํจ์๋ ์ํ์ ๊ฐ๊ฒฉ์ tax๋ฅผ ๋ํ ๊ฐ์ ๊ตฌํ๋ ํจ์์ ๋๋ค.
- getTotal ํจ์๋ ๋ ์ํ์ ๊ฐ๊ฒฉ์ ๋ํด์ ๋ฐํํ๋ ํจ์์ ๋๋ค.
//assignment
function getTotal(price1, price2) {
return calculateTotal(price1) + calculateTotal(price2);
}
function calculateTotal(price) {
return price + price * 0.1;
}
console.log(calculateTotal(500));
โ15. Array (๋ฐฐ์ด)
โ ๋ฐฐ์ด์ ์ ์ ๋ฐ ํน์ง
: ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ๋ช ์ฒ ๊ฐ์ ๋ณ์๋ฅผ ์์ฑํ์ง ์๊ณ , ํ๋์ ๋ณ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์์ ์ ์์ต๋๋ค. ๋ฐฐ์ด์ ๋๊ดํธ([])๋ก ๊ฐ์ธ์ ธ ์์ต๋๋ค.
let cities = ["์์ธ", "๋์ ", "๋๊ตฌ", "๋ถ์ฐ", "๊ด์ฃผ", "์ ์ฃผ๋"];
let KOSPI = [2062.82, 2053.2, 2045.92, 2058.82, 2053.12, 2055.7];
์์์ ์์ ์ฌ์ด์๋ ์ผํ๋ก ๊ตฌ๋ถํฉ๋๋ค. ์์ ์๋ฆฌ์๋ ์ด์ ๊น์ง ๋ฐฐ์ด String, Number, Array ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค.
let anything = ["๋์ ", 1987, ["ํ๋", "๋", 3]];
โ ๋ฐฐ์ด์ Index
: ๋ฐฐ์ด์ ์์๋ ์์(index)๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ์ฃผ์ํด์ผ ํ ํน์ง์ด ์๋ค๋ฉด ์ด index๋ 1์ด ์๋๋ผ 0๋ถํฐ ์์ํฉ๋๋ค.
var anything = ["๋์ ", 1987, ["ํ๋", "๋", 3]];
Stringํ์ธ "๋์ "์ index๊ฐ 0, Numberํ์ธ 1987์ index๊ฐ 1, Arrayํ์ธ ["ํ๋", "๋", 3]์ index๊ฐ 2์ ๋๋ค.
โ ๋ฐฐ์ด ๋ฐ์ดํฐ์ ์ ๊ทผ
index๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ๋ฐฐ์ด์ ์์๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์์ต๋๋ค.
var anything = ["๋์ ", 1987, ["ํ๋", "๋", 3]];
console.log(anything[0]);
console.log(anything[1]);
console.log(anything[2]);
alert(anything[0] + "์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค.");
Assignment
1. ์๋ ์กฐ๊ฑด์ ์ฝ๊ณ ์ดํํด์ฃผ์ธ์.
- getElement ํจ์์์ arr ๋ณ์๋ฅผ ์ ์ธํ์ต๋๋ค.
- arr ๋ณ์๋ ๋ฐฐ์ด์ ํ ๋นํ๊ณ ์, ๋ฐฐ์ด์๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์์๊ฐ ๋ค์ด์๋ค์!
- ๋ฐฐ์ด์ด ๋ด๊ธด arr ๋ณ์์ ์ ๊ทผํ์ฌ getElement ํจ์๊ฐ "array" ๋ผ๋ ๋ฌธ์์ด์ return ํ ์ ์๋๋ก ํด์ฃผ์ธ์.
2. addFirstAndLast ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- addFirstAndLast ํจ์์ ์ฃผ์ด์ง ์ธ์ myArray๋ ์ซ์ ๊ฐ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง array ์ ๋๋ค.
- addFirstAndLast ํจ์์ ์ฃผ์ด์ง ์ธ์ myArray ์ ์ฒซ๋ฒ์งธ element์ ๋ง์ง๋ง element์ ๊ฐ์ ๋ํ ๊ฐ์ ๋ฆฌํดํด์ฃผ์ธ์.
- ๋ง์ผ myArray์ ํ ๊ฐ์ ์์๋ง ์๋ค๋ฉด ํด๋น ์์์ ๊ฐ์ ๋ฆฌํดํด ์ฃผ์๊ณ ์์๊ฐ ์๋ ๋น์ด์๋ array๋ผ๋ฉด 0์ ๋ฆฌํดํด์ฃผ์ธ์.
- Hint) array์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์์ ์ฐธ์กฐํ์ธ์ : https://community.wecode.co.kr/t/js-array/200/2
wecode - wecode
wecode
community.wecode.co.kr
// Assignment1 - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function getElement() {
let arr = [3, [4, ["array", 9], 2+3], [0]];
return arr[1][1][0];
}
console.log(getElement())
// Assignment2 - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
// ex) myArray = [3, 2, 5];
function addFirstAndLast(myArray) {
if(myArray.length>1){
return myArray[0]+myArray[myArray.length-1]
} if(myArray.length==1){
return myArray[0];
} else{
return 0;
}
}
console.log(addFirstAndLast ([3, 2, 5]))
โ16. for ๋ฌธ(๋ฐ๋ณต๋ฌธ)
์ฐ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ๋จ์ ๋ฐ๋ณต์ ์ค์ด๊ธฐ ์ํด์๊ฐ ์๋๊น์? ์ด๋ ๊ฒ ๋นํจ์จ์ ์ธ ์ฝ๋๋ฅผ for ๋ฐ๋ณต ๋ฌธ์ ์ฌ์ฉํ๋ฉด ์งง๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
for ๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ์ํ๋ ๋งํผ ๋ฐ๋ณต์ํฌ ์ ์์ต๋๋ค.
์คํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ธ์ ๋ถํฐ ์ธ์ ๊น์ง ๋ฐ๋ณตํ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์๋ ค์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
const home = "๋์ ";
const cities = ["์์ธ", "๋์ ", "๋๊ตฌ", "๋ถ์ฐ", "๊ด์ฃผ", "์ ์ฃผ๋"];
for (let i = 0; i <= 5; i++) {
if (cities[i] === home) {
console.log("์, "+ cities[i] +" ์ฌ์๋๊ตฐ์");
}
}
- i ๊ฐ 0์ผ ๋, cities[0] ๊ณผ home ์ ๋น๊ตํฉ๋๋ค.
- "์์ธ" === "๋์ "
- false ์ด๋ฏ๋ก if ๋ฌธ {} ๋ด๋ถ๋ก ๋ค์ด๊ฐ์ง ์๊ณ i ๊ฐ 0์ผ๋์ for ๋ฌธ์ ๋๋ฉ๋๋ค.
- ๊ทธ ๋ค์, i ๊ฐ 1์ด ์ฆ๊ฐํ์ฌ i ๊ฐ 1์ด ๋๋ฉด, cities[1] ๊ณผ home ์ ๋น๊ตํฉ๋๋ค.
- "๋์ " === "๋์ "
- true ์ด๋ฏ๋ก if ๋ฌธ์ด ์คํ๋ฉ๋๋ค.
- ์ด๋ ๊ฒ i ๊ฐ 5๊ฐ ๋ ๋๊น์ง if ์กฐ๊ฑด์ ํ์ธํ๋ฉฐ for ๋ฌธ์ด ์คํ๋๊ณ ์ข ๋ฃ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ๋ฐ๋ณต์ด ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค.
- ๋ง์ฝ ๋ฐฐ์ด์ด ์๋์ ๊ฐ์๋ค๋ฉด console.log ๊ฐ ์ธ๋ฒ ๋ด์ ๊ฒ์ ๋๋ค.
const cities = ["์์ธ", "๋์ ", "๋๊ตฌ", "๋์ ", "๊ด์ฃผ", "๋์ "];
for ๋ฌธ์์ i ๊ฐ 1, 3, 5์ผ ๋ if ๋ฌธ์ด ์คํ๋๋ ๊ฒ์ด์ฃ .
โ ๋ฐ๋ณต๋ฌธ๊ณผ ๋ฐฐ์ด์ ๊ธธ์ด
๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์๋ฉด ๊ทธ๋งํผ for ๋ฌธ์ ๋ฐ๋ณตํ๋ฉด ๋๊ฒ ์ฃ . ๋ฐฐ์ด์ length ๋ผ๋ ์์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
let cities = ["์์ธ", "๋์ ", "๋๊ตฌ", "๋์ ", "๊ด์ฃผ", "๋์ "];
console.log(cities.length) // cities ๋ฐฐ์ด์ ์์๋ ์ด 6๊ฐ ์ด๋ฏ๋ก 6 ์ด๋ผ๋ ์ซ์๊ฐ ๋ฐํ๋ฉ๋๋ค.
for (var i = 0; i < cities.length; i++) {
if (cities[i] === home) {
alert("์, ์ฌ๊ธฐ ์ฌ์๋๊ตฐ์");
}
}
- for (var i = 0; i*<*cities.length; i++)*
- ๊ฐ์ด๋ฐ ๋น๊ต์ฐ์ฐ์๋ฅผ ์ฃผ์ํ์ธ์. <= ๊ฐ ์๋ < ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
- ๋ฐฐ์ด์ ๊ธธ์ด๋ 6 ์ด๋ฏ๋ก ์ด 6๋ฒ์ ๋ฐ๋ณต๋ฌธ์ด ์คํ๋์ด์ผ ํฉ๋๋ค.
- i ๋ 0๋ถํฐ 5๊น์ง ์ด 6๋ฒ์ด ์คํ๋์ด์ผ ํ๋ฏ๋ก ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค ์์๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ์คํํฉ๋๋ค.
- ๋ง์ฝ <= ์๊ฑฐ๋ ๊ฐ๋ค๋ ๋น๊ต์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด
- i ๋ 0,1,2,3,4,5,6 ๊น์ง ์คํ๋์ด ์ด 7๋ฒ์ ๋ฐ๋ณต๋ฌธ์ ์คํํฉ๋๋ค.
Assignment
findSmallestElement ํจ์๋ฅผ ๊ตฌํํด ์ฃผ์ธ์.
- findSmallestElement ์ arr ์ธ์๋ ์ซ์ ๊ฐ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ ๋๋ค.
- arr ์ ๊ฐ๋ค ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ๋ฆฌํด ํด์ฃผ์ธ์.
- ๋ง์ผ arr ๊ฐ ๋น์ด์์ผ๋ฉด 0์ ๋ฆฌํด ํด์ฃผ์ธ์.
- ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๋ฐฐ์ด์ด ์ธ์(input)์ผ๋ก ๋ค์ด์๋ค๋ฉด 1์ด ๋ฆฌํด ๋์ด์ผ ํฉ๋๋ค.
[20, 200, 23, 1, 3, 9]
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function findSmallestElement(arr) {
// your code here
if (arr.length === 0) {
return 0; // ๋ฐฐ์ด์ด ๋น์ด์์ผ๋ฉด 0์ ๋ฆฌํด
} else {
let smallest = arr[0]; //๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ์ ์์ ๊ฐ์ผ๋ก ์์ ์ง์
for (let i = 0; i < arr.length; i++) {
if (arr[i] < smallest) {
smallest = arr[i]; //for ๋ฃจํ๋ฅผ ๋๋ฉด์ smallest๋ณด๋ค ์์ ๊ฐ์ด ์กด์ฌํ๋ฉด ํด๋น ๊ฐ์ smallest๋ก ์ง์
}
}
return smallest; // ๋ฃจํ ์ข
๋ฃ ํ ๊ฐ์ฅ ์์ ๊ฐ ๋ฆฌํด
}
}
โ17. ๋ฐฐ์ด ์กฐ์ํ๊ธฐ
โ ์์์ถ๊ฐ
let cities = []; //์์์๋ ๋ฐฐ์ด์ ์ ์ธํ์ต๋๋ค.
cities[0] = "์์ธ"; // ["์์ธ"]
cities[1] = "๋์ "; // ["์์ธ", "๋์ "]
cities[2] = "๋๊ตฌ"; // ["์์ธ", "๋์ ", "๋๊ตฌ"]
//cities ๋ผ๋ ๋ณ์์ ๋น ๋ฐฐ์ด์ ํ ๋นํด์ฃผ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ด ์์๋ฅผ ํ๋์ฉ ์ถ๊ฐํ ์ ์์ต๋๋ค.
โ push / unshift ๋ฉ์๋
push() , unshift() ๋ฉ์๋๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํด์ฃผ๋ ํจ์์ ๋๋ค.
- push ๋ ๋ฐฐ์ด์ ๋ง์ง๋ง ๋ถ๋ถ, ์ฆ ๊ผฌ๋ฆฌ์ ์์๋ค์ ์ถ๊ฐ
- unshift๋ ๋ฐฐ์ด์ ๋งจ ์๋ถ๋ถ, ์ฆ ๋จธ๋ฆฌ ๋ถ๋ถ์ ์์๋ฅผ ์ถ๊ฐ
let cities = [];
cities.push("๊ฒฝ์ฃผ", "์ ์ฃผ");
cities.unshift("์ธ์ฒ");
console.log(cities);
โ ์ ๋ฆฌํ์๋ฉด, ๋ฐฐ์ด ์กฐ์ ๋ฐฉ๋ฒ์๋ 2๊ฐ์ง๊ฐ ์์ต๋๋ค.
- index๋ก ์ ๊ทผํ์ฌ ์์ ์ด๋ ์ถ๊ฐ
- push, unshift ๋ฉ์๋๋ก ์ถ๊ฐ
let day = ['m', 's', 'w', 't'];
day[1] = 't';
day[4] = 'f';
day[5] = 's'; // ๋ฐฉ๋ฒ (1)
let month = [1, 2, 3, 4]
month.push(5); // ๋ฐฉ๋ฒ (2)
โ pop ๋ฉ์๋
pop ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ง๋ง ์์๊ฐ ์ ๊ฑฐ๋๊ณ , ๋ง์ง๋ง ์์์ ๊ฐ์ ๋ฐํํฉ๋๋ค.
Assignment
divideArrayInHalf ํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํด์ฃผ์ธ์.
- divideArrayInHalf ํจ์๋ array๋ฅผ ์ธ์๋ก ๋ฐ์ต๋๋ค. ์ด array๋ ์ซ์ ๊ฐ์ผ๋ก ๋ง ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ์ด 5๊ฐ์ ์์(element)๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- divideArrayInHalf ํจ์๋ ์ธ์๋ก ๋ค์ด์จ array ๋ก ๋ถํฐ ์๋กญ๊ฒ ๊ตฌ์ฑ๋ ๋ฐฐ์ด result ์ ๋ฆฌํดํฉ๋๋ค.
- array ์์๋ค ์ค 10๊ณผ ๊ฐ๊ฑฐ๋ ์์ ๊ฐ์ ์์๋ค์ result์ ๋งจ ์์ผ๋ก, 10๋ณด๋ค ํฐ ๊ฐ์ ์์๋ค์ result์ ๋งจ ๋ค๋ก ์ฌ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ ๋ฆฌํด ํด์ฃผ์ธ์.
- ์ฌ๊ตฌ์ฑ์ด ๋๋ ์์๋ array์ ๋งจ ๋ค ์์๋ถํฐ ๋งจ ์ ์์๊น์ง ์ ๋๋ค. ์ฆ, ๋ฐฐ์ด์ ๋ท ์์ ๋ถํฐ ์ฌ๊ตฌ์ฑ์ ์งํํด์ฃผ์ธ์.
- ์๋ฅผ ๋ค์ด, ์ธ์๋ก ๋ค์ด์ค๋ array๊ฐ ๋ค์๊ณผ ๊ฐ์ ๋,
[1, 20, 10, 5, 100]
result ๋ฐฐ์ด์ด ๋ง๋ค์ด ์ง๋ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- [100]
- [5, 100]
- [10, 5, 100]
- [10, 5, 100, 20]
- [1, 10, 5, 100, 20]
๋ฐ๋ผ์ ์๋์ ๊ฐ์ result๊ฐ ๋ฆฌํด ๋์ด์ผ ํฉ๋๋ค.
[1, 10, 5, 100, 20]
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function divideArrayInHalf(array) {
let result = [];
for(let i = array.length; i>=0; i--){
if(array[i] <= 10){
result.unshift(array[i]);
}else if(array[i] > 10){
result.push(array[i]);
}
}
return result;
}
โ18. ๋ฐ์ดํฐ ํ์
โ๏ธ ๊ธฐ๋ณธ ์๋ฃํ (Primitive) ์ธ ์ฌ์ฏ ๊ฐ์ง ๋ฐ์ดํฐ ํ์
- String (๋ฌธ์์ด)
- Number (์ซ์)
- Boolean (true/false)
- Undefined
- Null
- Symbol (ECMAScript 6 ์ ์ถ๊ฐ๋จ)
โ๏ธ ๋ณ๋๋ก Object(๊ฐ์ฒด) ๋ ์์
โ typeof ์ฐ์ฐ์
- typeof ์ฐ์ฐ์๋ฅผ ํตํด ์ด ๊ฐ, ์ด ๋ณ์๋ ๋ฌด์จ ๋ฐ์ดํฐ ํ์ ์ธ์ง ์ ์ ์์ต๋๋ค.
- typeof ์ฐ์ฐ์๋ฅผ ์ ์ฉํ๋ฉด ๋ค์ ๋ฌธ์์ด ์ค ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.
- "undefined" : ์ ์๋์ง ์์ ๋ณ์
- "boolean"
- "string"
- "number"
- "object" : ํจ์๋ฅผ ์ ์ธํ ๊ฐ์ฒด ๋๋ "object"
- "function"
let msg = "message";
console.log(typeof msg); // "string"
console.log(typeof 100); // "number"
:: typeof null
- typeof null → "object"
- null ์ด๋ผ๋ ๋ฐ์ดํฐ ํ์ ์ด object ๋ก ๋ฐํ๋ฉ๋๋ค.
- null ์ ๋น ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ ์์ด์ ๊ทธ๋ ์ต๋๋ค.
- ์ด ๋ด์ฉ์ ๋ค์์ ์ถ๊ฐ๋ก ํ์ตํ๊ฒ ์ต๋๋ค!
:: Array ๋ฐ์ดํฐ ํ์
console.log(typeof []);
- ๋ฐฐ์ด์ type์ ํ์ธํด๋ณด๋ฉด "object"์ ๋๋ค.
- ์๋ํ๋ฉด ์ฌ์ค ๋ฐฐ์ด์ ํ์ฅ๋ ๊ฐ์ฒด ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค...!
- ์ผ๋จ typeof ์ฐ์ฐ์๋ก ๋ฐฐ์ด์ ํ์ธํ๋ฉด "object" ๊ฐ ์ถ๋ ฅ๋๋ค๋ ๊ฒ๋ง ๊ธฐ์ตํ์๊ณ ๋์ด๊ฐ์ฃผ์ธ์.
โ Number (์ซ์)
- Number ๋ผ๋ ๋ฐ์ดํฐ ํ์ ์ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- Number ํ์ ์์ ์ค์ํ ๊ฒ์ ์ฐ์ฐ์ ๋๋ค.
- ์ฐ์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ Number ํ์ ์ ๋ํ ์ฐ์ฐ์ ์๋์ ๊ฐ์ด ์์ฑํฉ๋๋ค.
1 + 1 // ๋ํ๊ธฐ
2 - 1 // ๋นผ๊ธฐ
2 * 4 // ๊ณฑํ๊ธฐ
6 / 2 // ๋๋๊ธฐ
- ๋ํ๊ธฐ(+)๋ ์ผ์ชฝ ๊ฐ๊ณผ ์ค๋ฅธ์ชฝ ๊ฐ์ ๋ํด์ ํ๋์ ๊ฐ์ ๋ง๋ ๋ค๋ ์ ์์ ์ดํญ ์ฐ์ฐ์๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
- ์ดํญ ์ฐ์ฐ์ ์ค์์ ์ฐ์๋ฅผ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐ์ ์ฐ์ฐ์๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
โ String (๋ฌธ์์ด)
- ๋ฌธ์์ด ๋ฐ์ดํฐ ํ์ ์ ๋ฐ์ดํ(" ") ํน์ ์์๋ฐ์ดํ(' ')๋ก ๊ฐ์ผ ๋ชจ๋ ํํ์ ๋ปํฉ๋๋ค.
- ์ฃผ์) ํฐ๋ฐ์ดํ๋ก ์์ํ๋ฉด ํฐ๋ฐ์ดํ๋ก ๋๋๊ณ , ์์๋ฐ์ดํ๋ก ์์ํ๋ฉด ์์๋ฐ์คํ๋ก ๋๋์ผ ํฉ๋๋ค.
- ์ฐ์ ์ฐ์ฐ์๋ฅผ ํตํด ์ซ์ ๋ฐ์ดํฐ ํ์ ์ ํ์ฉํ๋ ๊ฒ์ฒ๋ผ ๋ฌธ์์ด ํ์ ์๋ ๋ค์ํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
// ๋ฌธ์์ด ๋ฐ์ดํฐ ํ์
๋ณ์ ์ ์ธ
let name = "wecode";
// .length >> ๋ฌธ์์ด์ด ๋ช ๊ธ์๋ก ๋์ด ์๋์ง ํ์ธ
name.length // 5
// .toUpperCase >> ๋ฌธ์์ด์ ๋๋ฌธ์๋ก ์ถ๋ ฅ
name.toUpperCase() // "WECODE"
// .indexOf >> ํน์ ํ
์คํธ์ ํฌํจ ์ ๋ฌด ๋ฐ ์์น ํ์ธ
name.indexOf('c') // 2
name.indexOf('j') // -1
โ๏ธ ๋ฌธ์์ด + ๋ฌธ์์ด
- ํ ์คํธ๋ฅผ ์๋ก ์กฐํฉํ ์๋ ์์ต๋๋ค.
- ํ ์คํธ๋ฅผ ์กฐํฉํ ๋๋ + ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํ ์คํธ์ ๋ณ์๋ฅผ ์กฐํฉํด์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
- ์๋๋ ๋ชจ๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค.
let message = "๊ฐ์ฌํฉ๋๋ค., ";
let userName = "๊น๊ฐ๋ฐ";
let banger = "๋!";
let customMess = message + userName + banger;
console.log(customMess);
โ๏ธ ๋ฌธ์์ด + ์ซ์ ์กฐํฉ
alert("2 ๋ํ๊ธฐ 2๋ " + 2 + 2);
- ์์ ๊ฐ์ด ์๋ก ๋ค๋ฅธ type์ธ String + Number๋ฅผ ์๋ํ ๋๋ ํญ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
- String๊ณผ Numberํ์ ๋ํ๋ฉด ํญ์ String ํ์ผ๋ก ๋ณํ๋ฉ๋๋ค.
- ์๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ์๋ก ๋ค๋ฅธ type์ธ String๊ณผ Number๋ ์๋ก ๋ํ๊ฑฐ๋ ๋บ ์ ์์ต๋๋ค.
- ํ์ง๋ง JavaScript ์์๋ ์ค๋ฅ๋ฅผ ๋ด์ง ์๊ณ ๋ํ๊ฒ ๋์ฃ .
- ์ด๋ฐ ๊ฒ์ ์ ์ฐ ํ๋ค๊ณ ์ข์ํ๋ ๊ฐ๋ฐ์๋ ์์ง๋ง, ์๋ฌ๋ฅผ ๋ผ ์ฌ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ JavaScript ์ ๋จ์ ์ผ๋ก ๊ผฝ๋ ๊ฐ๋ฐ์๋ ์์ต๋๋ค.
๋ฌธ์์ด์ด๋ ์ซ์๋์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ง์ด ๋ฌ๋ผ์ง๋ฏ๋ก ๋ฐ์ดํฐ ํ์ ์ ์ ํํ๊ฒ ํํํ๋ ๊ฒ์ ๊ด์ฌ์ ๊ฐ์ง ํ์๊ฐ ์์ต๋๋ค.
โ boolean
- boolean ์ ๋จ ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ํ์ ์ ๋๋ค. → true / false
- boolean ๋ฐ์ดํฐ ํ์ ์ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ด boolean ๊ฐ์ผ๋ก ๋ณํ๋๋ ์ฌ๋ฌ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
:: ์ฌ๋ฌ ๋ฐ์ดํฐ ํ์ ์ boolean ๊ฐ ๋ณํ
โ๏ธ true ๋ก ๋ณํ๋๋ ๊ฐ
- ๋ฌธ์์ด : ๋น์ด ์์ง ์์ ๋ชจ๋ ๋ฌธ์์ด
- ์ซ์ : 0 ์ด ์๋ ๋ชจ๋ ์ซ์
- ๊ฐ์ฒด: ๋ชจ๋ ๊ฐ์ฒด ({ }, [ ] ํฌํจ)
โ๏ธ false ๋ก ๋ณํ๋๋ ๊ฐ
- ๋ฌธ์์ด : " " (๋น๋ฌธ์์ด)
- ์ซ์ : 0, NaN
- ๊ฐ์ฒด : null
- undefined
:: ์กฐ๊ฑด๋ฌธ์์์ boolean ๋ฐ์ดํฐ ๊ฐ ํ์ฉ
- ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ด boolean ๊ฐ์ผ๋ก ๋ณํ ๋๋ ๊ฒ์ ์๋์ ๊ฐ์ด ์กฐ๊ฑด๋ฌธ์์ ํ์ฉ๋ ์ ์์ต๋๋ค.
- (์กฐ๊ฑด๋ฌธ์ ์ถํ ์์ธํ ๋ค๋ฃฐ ์์ ์ ๋๋ค.)
- if ์กฐ๊ฑด๋ฌธ์ ํน์ ์กฐ๊ฑด์ true/false ๊ฐ์ ํ๋จํ์ฌ if๋ฌธ์ ์คํํฉ๋๋ค.
let sam = 3;
if (sam === 3) { //sam === 3 ์ด true์ด๋ฉด
// ์คํ
}
โ undefined
- undefined ๋ฐ์ดํฐ ํ์ ์ ๋ง ๊ทธ๋๋ก ์ ์๋์ง ์์ ๋ฐ์ดํฐ ํ์ ์ ๋๋ค.
- let, const ํค์๋๋ฅผ ์ฌ์ฉํด์ ๋ณ์๋ฅผ ์ ์ํ ๋ ์ด๊ธฐํ ํ์ง ์์๋ค๋ฉด, ์ฆ ๋ณ์๋ฅผ ์ ์ธ๋ง ํ๊ณ ๊ฐ์ ํ ๋นํ์ง ์์๋ค๋ฉด ๋ณ์์๋ undefined ๊ฐ ํ ๋น๋ฉ๋๋ค.
let msg;
console.log(msg === undefined); //true (msg๋ ์ ์ธ๋ง ํ๊ณ , ์ด๊ธฐํ ํ์ง ์์์ต๋๋ค.)
โ null
- null ํ์ ์ ๋ฐ์ดํฐ ํ์ ์ค ํ๋ ์ ๋๋ค.
- ํ์ง๋ง ์ฝ์์ typeof null ๋ก ํ์ธํด๋ณด๋ฉด "object" ๋ผ๊ณ ๋์ต๋๋ค.
- null ์ ๋ง๊ทธ๋๋ก ์๋ฌด๊ฒ๋ ์๋ ๋น ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์ด์ "object" ๋ผ๊ณ ๋์ต๋๋ค.
โ ๊ฐ์ฒด(Object)
- ๋ง์ง๋ง์ ๊ฐ์ฒด(Object) ๋ฐ์ดํฐ ํ์ ์ ๋๋ค.
- ๊ฐ์ฒด๋ ํค(Key)์ ๊ฐ(Value)์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ์ ๋๋ค.
- ์ค๊ดํธ๋ก ๊ฐ์ธ์ง key-value(property)์ ํํ๋ฅผ ๊ฐ์ต๋๋ค.
const person = {
name : "wecode",
age : 30,
skills : ['HTML', 'CSS', 'Javascript']
}
โ19. String
let good = '์ด๊ฒ๋ ๋ง๊ณ ';
let better = "์ด๊ฒ๋ ๋ง์ต๋๋ค";
//'',"" ๋๋ค Stringํ ์ด๋ค.
โ ๋์๋ฌธ์ ๋ฐ๊พธ๊ธฐ
- toUpperCase ๋ฉ์๋
- toLowerCase ๋ฉ์๋
let lastName = 'Yeri Kim';
let upperLastName = lastName.toUpperCase();
let lowerLastName = lastName.toLowerCase();
console.log(lastName); // Yeri Kim
console.log(upperLastName); // YERI KIM
console.log(lowerLastName); // yeri kim
โ ๋ฌธ์ ๊ธธ์ด
- length ์์ฑ
if (phoneNumber.length !== 10 && phoneNumber.length !== 11) {
alert("ํฐ ๋ฒํธ ์ ๋๋ก ์
๋ ฅํ์
จ๋์?");
}
//๋ค์ ์์ ๋ ํธ๋ํฐ ๋ฒํธ(phoneNumber)๊ฐ 10์๋ฆฌ๋ ์๋๊ณ , 11์๋ฆฌ๋ ์๋๋ฉด alert ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
let name = prompt("์ฑํจ์ ์
๋ ฅํด์ฃผ์ธ์");
if (name.length === 2) {
alert("์ธ์์ด์๊ตฐ์! ์ด๋ฆ์ด ์ด์๋ค์.");
} else if (name.length === 1) {
alert("์ ๋๋ก ์
๋ ฅํ์
จ๋์?");
} else if (name.length === 3) {
alert("๋ฉ์ง ์ด๋ฆ์
๋๋ค.");
}
โ ์ฐธ๊ณ .
0์ผ๋ก ์์ํ๋ ์ซ์ ํํ์์ ์์ต๋๋ค. (์์ด์คํฌ๋ฆผ 023๊ฐ ์ฃผ์ธ์! ๋ผ๊ณ ํ์ง๋ ์์ฃ .)
let phoneNumber = "01012349876";
console.log(phoneNumber);
console.log(phoneNumber.length);
phoneNumber ๋ ์๋ Numberํ์ด๋ฉฐ, ์์ 0์ด ์์ด ๋ท ์ซ์๋ง ํ ๋น๋ฉ๋๋ค.
๋ํ, Numberํ์๋ length ๋ผ๋ ์์ฑ์ด ์กด์ฌํ์ง ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ํธ๋ํฐ ๋ฒํธ๋ฅผ ์จ์ ํ ํ์ํ๊ณ length ์์ฑ์ ์ด์ฉํ๋ ค๋ฉด ์์ ๊ฐ์ด Stringํ์ผ๋ก ์ ์ฅํด์ผํฉ๋๋ค.
โ ๋ฌธ์์ด ์ฐพ๊ธฐ
- indexOf ๋ฉ์๋
: ๋ฌธ์์ด์ ํน์ ๋ฌธ์์ด์ด ๋ค์ด์๋์ง ํ์ธํ๊ณ , ๋ง์ฝ ์๋ค๋ฉด ๋ช๋ฒ ์งธ ์์์ ํด๋น ๋ฌธ์์ด์ด ์๋์ง ์๋ ค ์ค๋๋ค.
ํด๋น ๋ฌธ์์ด์ด ์๋ค๋ฉด -1์ ๋ฐํํฉ๋๋ค.
let info = "JavaScript๋ ํ๋ก๋๋ฐ ์ธ์ด์ด๋ค.";
let firstChar = info.indexOf("ํ๋ก๋๋ฐ");
console.log(info, firstChar);
if (firstChar !== -1) {
info = info.slice(0, firstChar) + "ํ๋ก๊ทธ๋๋ฐ" + info.slice(firstChar+4, info.length);
}
console.log(info);
์๋ "ํ๋ก๋๋ฐ" ์ด๋ผ๋ ์คํ๋ฅผ "ํ๋ก๊ทธ๋๋ฐ" ์ด๋ผ๊ณ ๋ฐ๊พธ์ด ์ฃผ๋ ์ฝ๋์ ๋๋ค.
์ฝ๋๋ฅผ ํ ์ค ํ ์ค ์ค๋ช ํ์๋ฉด
1. info ๋ฌธ๊ตฌ์์ "ํ๋ก๋๋ฐ"์ด ์์๋๋ index ๋ 12์ ๋๋ค.
2. if (firstChar !== -1)
- firstChar ์ด -1์ด ์๋๋ฉด
- ์ฆ, "ํ๋ก๋๋ฐ"์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์์ง ์๋ค๋ฉด
- ์ฆ, "ํ๋ก๋๋ฐ"์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์๋ค๋ฉด
- "ํ๋ก๋๋ฐ" ๋ฌธ๊ตฌ๋ 12๋ฒ์งธ์์ ์์ํ๋ฏ๋ก firstChar ๋ 12 ์ ๋๋ค. ๋ฐ๋ผ์ ์กฐ๊ฑด๋ฌธ์ true.
- "ํ๋ก๋๋ฐ"์ด๋ผ๋ ์คํ๊ฐ ํฌํจ๋์ด์์ผ๋ฉด if ๋ฌธ์ ์คํํฉ๋๋ค.
3. info.slice(0, firstChar)
- slice ๋ฉ์๋๋ ์ด๋ฆ ๊ทธ๋๋ก, ํ ์คํธ๋ฅผ ์๋ผ์ฃผ๋ ํจ์์ ๋๋ค.
- ๊ทธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
slice(์๋ฆด ์์์์น, ์๋ฆด ๋์์น)
- ์๋ฆด ์์์์น๋ 0์ ๋๋ค. ์๋ฆด ๋์์น๋ firstChar ๋ก 12 ์ ๋๋ค.
- ๊ทธ๋์ slice ๋ฉ์๋๋ info ๋ฌธ๊ตฌ์ 0๋ถํฐ 11๋ฒ์งธ ๊น์ง ์๋ผ์ ๋ฐํํฉ๋๋ค.
- ์๋ฆด ๋์์น๊ฐ ์กฐ๊ธ ํท๊ฐ๋ฆฌ๋๋ฐ, ์๋ฆด ๋์์น์ ๋ฌธ๊ตฌ๋ ํฌํจํ์ง ์์ต๋๋ค.
- ๋ฐ๋ผ์, 12๋ฒ์งธ์ ๋ฌธ์๋ ํฌํจํ์ง ์์ต๋๋ค. ๋ฐ๋ก ๊ทธ ์ง์ ์์ ๋์ด์ค๋๋ค.
- ์ง๊ธ slice ๋ฉ์๋๊ฐ ์กฐ๊ธ ์ด๋ ต๊ฒ ์ง๋ง ์ผ๋จ slice ๋ผ๋ ๋ฉ์๋ ์๋ค๋ ๊ฒ๋ง ๊ธฐ์ตํ๊ณ ๋์ด๊ฐ๋ ์ข์ต๋๋ค.
console.log(info.slice(0, firstChar));
4. info.slice(firstChar+4, info.length);
- ์๋ฆด ์์์์น๋ 16 ์ ๋๋ค. (firstChar + 4 = 12 + 4 = 16)
- ์๋ฆด ๋ ์์น๋ 22 ์ ๋๋ค. (info.length = 22)
- info ์ 16๋ฒ์งธ ๋ฌธ์์ธ "์ธ" ๋ถํฐ 22๋ฒ์งธ ๋ฌธ์ ์ด์ ๊น์ง ์๋ฅด๊ฒ ๋ฉ๋๋ค.
- 22๋ฒ์งธ๋ ๋ฌธ์๊ฐ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์, ๊ทธ ์ง์ ์ ๋์ผ๋ "."๊น์ง ํฌํจํ๋ ๋ฌธ์์ด๋ก ์๋ฆฌ๊ฒ ๋ฉ๋๋ค.
console.log(firstChar+4, info.length);
Assignment
sliceCityFromAddress ํจ์๋ฅผ ๊ตฌํํด ์ฃผ์ธ์.
- sliceCityFromAddress ํจ์๋ address ๋ฅผ ์ธ์๋ก ๋ฐ์ต๋๋ค.
- address ๋ ์ฃผ์๋ฅผ ๋ํ๋ด๋ string ์ ๋๋ค.
- ์ฃผ์ด์ง ์ฃผ์๊ฐ ์ด๋ ๋์ ์ธ์ง๋ฅผ ์ฐพ์ ํด๋น ์ฃผ์์์ ๋์ ๋ถ๋ถ๋ง ์ญ์ ํ ์๋ก์ด ์ฃผ์๋ฅผ ๋ฆฌํดํด ์ฃผ์ธ์.
- ๋์๋ ๋ฌด์กฐ๊ฑด "์" ๋ก ๋๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, "์์ธ์".
- "๋" ์ "์" ๋ ์ฃผ์์ ํ๋ฒ ๋ฐ์ ํฌํจ๋์ด ์์ง ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ์ฃผ์๊ฐ ์ฃผ์ด์ก๋ค๋ฉด;
"๊ฒฝ๊ธฐ๋ ์ฑ๋จ์ ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53"
๋ค์๊ณผ ๊ฐ์ ๊ฐ์ด ๋ฆฌํด๋์ด์ผ ํฉ๋๋ค:
"๊ฒฝ๊ธฐ๋ ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53"
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function sliceCityFromAddress(address) {
let someSi = address.indexOf('์');
let someDo = address.indexOf('๋');
if (someDo !== -1){
let newAddress = address.slice(0,someDo+1)+address.slice(someSi+1)
return newAddress;
}
else {
let newAddress = address.slice(someSi+2)
return newAddress;
}
}
let exAddress = sliceCityFromAddress("๊ฒฝ๊ธฐ๋ ์ฑ๋จ์ ๋ถ๋น๊ตฌ ์ค์๊ณต์๋ก 53");
console.log(exAddress);
โ20. String <-> Number ๋ณํ
console.log(2019+"2000");
console.log(2019-"2000");
์ปดํจํฐ๊ฐ + ์ ์์ชฝ์ ๋ณด๊ณ , ํ๋๋ผ๋ String์ด ์์ผ๋ฉด ๋ฌธ์์ด๋ก์ ํฉ์ณ์ค๋๋ค.
๊ทธ๋ฐ๋ฐ - ๋ผ๋ฉด, String์ ๋ง์ด๋์ค๋ ์กด์ฌ ํ์ง ์์ผ๋ฏ๋ก ์์ชฝ์ ๊ฐ์ ๋ชจ๋ ์ซ์๋ก ๋ณํํด์ ๊ณ์ฐํด ์ค๋๋ค.
๋ฌผ๋ก ์์ ์ฝ๋๊ฐ ์ ๋์ ๋๊ธด ํ์ง๋ง, ํจ๊ป ์ฝ๋๋ฅผ ๋ณด๋ ๋๋ฃ๊ฐ ์ถฉ๋ถํ ์คํดํ ์ ์๋ ์ฝ๋์ ๋๋ค.
๊ณ์ฐ์ด ์ ๋๋๋ผ๋ ํ ์คํธ๋ก ํํ๋ ์ซ์๋, ๊ผญ ์ซ์๋ก ๋ฐ๊ฟ์ ๊ณ์ฐ์ ํด์ฃผ์ ์ผ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด Number ํจ์๋ฅผ ์ฌ์ฉํด์ Stringํ์์ Numberํ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค.
Assignment
nationalPensionRemainingYearCount ํจ์๋ฅผ ๊ตฌํํด์ฃผ์ธ์.
- ์ฐ๋ฆฌ๋๋ผ๋ ๊ตญ๋ฏผ์ฐ๊ธ์ ๋ง 65์ธ ๋ถํฐ ๋ฐ์ ์ ์์ต๋๋ค.
- nationalPensionRemainingYearCount ๋ age_string ์ด๋ผ๋ input์ ๋ฐ์ต๋๋ค.
- age_string ์ ๋์ด ๊ฐ์ธ๋ฐ stringํ ๊ฐ์ผ๋ก ๋์ด ์์ต๋๋ค.
- ์ฃผ์ด์ง ๋์ด๋ถํฐ ๋ช๋ ์ด ์ง๋์ผ ๊ตญ๋ฏผ์ฐ๊ธ์ ๋ฐ์์ ์๋์ง ๋ฆฌํด ํด์ฃผ์ธ์.
- ๋ฆฌํด ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
"์์ผ๋ก 20๋
๋จ์ผ์
จ์ต๋๋ค"
- ์๋ฅผ ๋ค์ด, age_string ๊ฐ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด:
"35"
๋ฆฌํด ๊ฐ์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
"์์ผ๋ก 30๋
๋จ์ผ์
จ์ต๋๋ค"
// Assignment - ๋ค์ ํจ์ ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ธ์
function nationalPensionRemainingYearCount(age_string) {
// Your code here
let yourAge = parseInt/*Number or parseFloat*/(age_string);
let year = 65 - yourAge;
let result = "์์ผ๋ก " + year + "๋
๋จ์ผ์
จ์ต๋๋ค";
return result;
}
console.log(nationalPensionRemainingYearCount(35))