๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

javascript ๋ฐ˜๋ณต๋ฌธ ์‹ค์Šต & ์ž‘์„ฑ ์œ„์น˜ & ๋ฐฐ์—ด(2023.04.26) ๋ณธ๋ฌธ

full stack/JavaScript

javascript ๋ฐ˜๋ณต๋ฌธ ์‹ค์Šต & ์ž‘์„ฑ ์œ„์น˜ & ๋ฐฐ์—ด(2023.04.26)

Shinjio 2023. 4. 26. 20:10

๐ŸŽˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐ˜๋ณต๋ฌธ ์‹ค์Šต

 

for๋ฌธ ์‹ค์Šต

// 1. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ ์ˆซ์ž์™€ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. 
// 1-1. ์ž…๋ ฅ์ฐฝ์„ ์ž…๋ ฅ : prompt ** ๋ฆฌํ„ดํƒ€์ž… String
// 1-2. String -> Number : ํ˜•๋ณ€ํ™˜
// 1-3. ์–ด๋”˜๊ฐ€์— ์ €์žฅ : ๋ณ€์ˆ˜ 
let startNum = Number(prompt('์‹œ์ž‘ํ•  ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค.'));
let endNum = Number(prompt('๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค.'));
// 2. ์‹œ์ž‘~๋งˆ์ง€๋ง‰ ์ˆซ์ž๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค. 
let sum = 0;

for(let i = startNum ; i <= endNum ; i++){
    sum += i;
}
// 3. ๊ฒฐ๊ณผ๊ฐ’์„ ์ฝ˜์†”์ฐฝ์œผ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค. 
// startNum๋ถ€ํ„ฐ endNum๊นŒ์ง€์˜ ํ•ฉ์€? >> sum ์ถœ๋ ฅ
console.log(`${startNum}๋ถ€ํ„ฐ ${endNum}๊นŒ์ง€์˜ ํ•ฉ์€? >> ${sum}`);

 

while๋ฌธ ์‹ค์Šต

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋‚œ์ˆ˜ ์ƒ์„ฑํ•˜๋Š” ๋ฒ• : Math.random()

// 1. ๋žœ๋คํ•œ ์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋ฝ‘์•„์ค€๋‹ค.
// Math.random() : 0~1์‚ฌ์ด์˜ ๋‚œ์ˆ˜ ์ƒ์„ฑ 

let ranNum = parseInt(Math.random()*100+1);
console.log(ranNum);

// 2. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. 
//      ์ž…๋ ฅ ์ˆซ์ž > ๋žœ๋ค ์ˆซ์ž -> '์ž…๋ ฅํ•œ ์ˆซ์ž๋ณด๋‹ค ์ž‘์€ ์ˆ˜ ์ž…๋‹ˆ๋‹ค.'
//      ์ž…๋ ฅ ์ˆซ์ž < ๋žœ๋ค ์ˆซ์ž -> '์ž…๋ ฅํ•œ ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆ˜์ž…๋‹ˆ๋‹ค.'
//      ์ž…๋ ฅ ์ˆซ์ž = ๋žœ๋ค ์ˆซ์ž -> '์ •๋‹ต์ž…๋‹ˆ๋‹ค. ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!๐ŸŽ‰'
//      ์•Œ๋ฆผํŒ์—…์ฐฝ์˜ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ!
//  ์ˆซ์ž๋ฅผ ๋งž์ถœ ๋•Œ๊นŒ์ง€ ์œ„์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณต

while(true){
    let inputNum = Number(prompt('์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค.'));
    if(inputNum === ranNum){
        alert('์ •๋‹ต์ž…๋‹ˆ๋‹ค. ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!๐ŸŽ‰');
        break;
    }else if(inputNum < ranNum){
        alert('์ž…๋ ฅํ•œ ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆ˜ ์ž…๋‹ˆ๋‹ค.');
    }else{
        alert('์ž…๋ ฅํ•œ ์ˆซ์ž๋ณด๋‹ค ์ž‘์€ ์ˆ˜ ์ž…๋‹ˆ๋‹ค.');
    }
}

 

๐ŸŽˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ์œ„์น˜

 

โ€ป ๋‚ด๋ถ€ ์Šคํฌ๋ฆฝํŠธ <head> ํƒœ๊ทธ ๋‚ด์— ์ž‘์„ฑ์‹œ <script> ํƒœ๊ทธ ๋‚ด์— defer ์†์„ฑ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•จ

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Script type</title>
    <!-- ์™ธ๋ถ€ ๋ฐฉ์‹
    ์™ธ๋ถ€์˜ js ํŒŒ์ผ ์•ˆ์— ์ž‘์„ฑ ํ›„ ์—ฐ๊ฒฐ -->
    <!-- async : HTML ๋กœ๋”ฉ์„ ๋ฉˆ์ถ”๊ธฐ ์•Š์Œ
    defer : HTML๋กœ๋”ฉ์ด ๋‹ค ๋˜๊ณ ๋‚˜์„œ script๋ฅผ ์‹คํ–‰ -->
    <script defer src="./ex18์™ธ๋ถ€script.js"></script>
</head>
<body>
    <!-- ๋‚ด๋ถ€ ๋ฐฉ์‹
    head ๋˜๋Š” body ์˜์—ญ์˜ script ํƒœ๊ทธ ์•ˆ์— ์ง์ ‘ ์ž‘์„ฑ -->
    <script>
        console.log('๋‚ด๋ถ€ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค!');
    </script>
    
    <!-- ์ธ๋ผ์ธ ๋ฐฉ์‹
    ํƒœ๊ทธ์— ์ง์ ‘ ๊ธฐ๋Šฅ์„ ๋„ฃ์–ด์ค„ ๋•Œ ์ž‘์„ฑ -->
    <button id="btn" onmouseenter="console.log('๋งˆ์šฐ์Šค ์˜ฌ๋ฆผ!')">
        ๐ŸญMOUSE๐Ÿน
    </button>

</body>
</html>

 

๐ŸŽˆ ๋ฐฐ์—ด(Array)

์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜๋กœ ๋‹ด์•„๋‘๋Š” ๊ณต๊ฐ„

 

์ž๋ฐ”์™€์˜ ์ฐจ์ด์ 

1. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ž๋ฃŒํ˜•์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์ด๋‹ค. 

3. ์ •ํ•ด์ง„ ํฌ๊ธฐ๋ฅผ ๋„˜์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ €์žฅ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•œ๋‹ค. 

 

 

๐Ÿ“– ๋ฐฐ์—ด์˜ ์„ ์–ธ

 

 

// ๋ฐฐ์—ด : ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๊ตฌ์กฐ

// 1. ๋ฐฐ์—ด์˜ ์„ ์–ธ
let numList = [];
let numList2 = new Array(5);
console.log(numList2);
// 5๊ฐœ๋กœ ์„ ์–ธํ–ˆ์–ด๋„ ์ดˆ๊ณผ ๊ฐ€๋Šฅ! ->  ๊ณต๊ฐ„์„ ๋™์ , ๊ฐ€๋ณ€์ ์œผ๋กœ ๊ด€๋ฆฌ
let numList3 = new Array(1,2,3,4,5);
console.log(numList3);

 

๐Ÿ“– ๋ฐฐ์—ด์˜ ์ƒ์„ฑ

 

// 2. ๋ฐฐ์—ด์˜ ์ƒ์„ฑ
numList = [1,2,3];
console.log(numList);
numList2 = [1,2,3,4,5,6,7];
console.log(numList2);

// 3. ๋ฐฐ์—ด์˜ ์„ฑ์–ธ ๋ฐ ์ƒ์„ฑ
// let numList4 = [];
// numList4 = [1,2,3,4,5];
let numList4 = [1,2,3,4,5];

 

๐Ÿ“– ๋ฐฐ์—ด์— ์ ‘๊ทผ

 

// 4. ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ
let arrayList = [];
arrayList[0] = 1;
arrayList[1] = '์‹ ์ง€์˜'
arrayList[2] = true;
console.log(arrayList);
console.log(arrayList.length);

 

๐Ÿ“– ๋ฐฐ์—ด ๋ฐ˜๋ณต๋ฌธ

 

// ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ!

// 1. for๋ฌธ
let nameList = ['์‹ ์ง€์˜', '์„œํ˜„๋ก', '์„œ์œ ๊ด‘', '๊น€๋Œ€ํ˜'];
for(let i = 0 ; i < nameList.length ; i++){
    console.log(nameList[i]);      
}

// 2. for of๋ฌธ
let foodList = ['ํ–„๋ฒ„๊ฑฐ', '์•„์ด์Šคํฌ๋ฆผ', '๊ผฌ๋ถ์นฉ', 'ํ”ผ์ž'];
for(let i of foodList){
    console.log(i);
}

// 3. for each๋ฌธ
let colorList = new Array('์ดˆ๋ก', '๋ณด๋ผ', 'ํŒŒ๋ž‘', '๋…ธ๋ž‘');
colorList.forEach((element, index)=>{
    console.log(index, element);
});

 

๋ฐฐ์—ด ๋ฐ˜๋ณต๋ฌธ ์‹ค์Šต

// 1. ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. 
let numList = [23, 54, 78, 13, 44];

// 2. ๋ฐ˜๋ณต๋ฌธ์„ ํ™œ์šฉํ•ด ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„์ค€๋‹ค. 
let max = numList[0];

// for๋ฌธ ์‚ฌ์šฉ
for(let i = 0 ; i < numList.length ; i++){
    if(numList[i] > max){
        max = numList[i];
    }
}

// for of ๋ฌธ ์‚ฌ์šฉ
for(let i of numList){
    if(i > max){
        max = i;
    }
}

// for each๋ฌธ ์‚ฌ์šฉ
numList.forEach((element)=>{
    if(element > max){
        max = element;
    }
})

// 3. ๊ฒฐ๊ณผ๋ฅผ ํŒ์—…์ฐฝ์œผ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค. 
alert(`์ตœ๋Œ“๊ฐ’ >> ${max}`)
// 1. ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. (1~8๊นŒ์ง€)
let numList = [];
for(let i = 1 ; i < 9 ; i++){
    numList[i-1] = i;
}

// 2. ๋ฐ์ดํ„ฐ์—์„œ ํ™€์ˆ˜์ธ ์ˆซ์ž๋ฅผ ์ฐพ๊ณ  ๊ฐœ์ˆ˜๋ฅผ ์„ธ์ค€๋‹ค. 

// ํ™€์ˆ˜๋ฅผ ๋„ฃ์–ด์ค„ ๋ฐฐ์—ด
let oddList = [];
// j : oddList์˜ ์ธ๋ฑ์Šค๋ฒˆํ˜ธ
let j = 0;
for(let i = 0 ; i < numList.length ; i++){
    if(numList[i] % 2 != 0){
        oddList[j] = numList[i];
        j++;
    }
}

// ๋ฐฐ์—ด.push ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ค„์ด๊ธฐ
for(let k of numList){
    if(k % 2 != 0){
        oddList.push(k);
    }
}

// 3. ๊ฒฐ๊ณผ๋ฅผ ํŒ์—…์ฐฝ์œผ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค. 
alert(`list์— ๋“ค์–ด์žˆ๋Š” ํ™€์ˆ˜๋Š” ${oddList}์ด๋ฉฐ, ์ด ${oddList.length}๊ฐœ์ž…๋‹ˆ๋‹ค.`)

 

๐Ÿ“– ๋ฐฐ์—ด ํ•จ์ˆ˜

// ๋ฐฐ์—ด ๊ด€๋ จ ํ•จ์ˆ˜ 
let nameList = ['์ง€์˜', 'ํ˜„์ˆ˜', '์œ ์ง„', '๋Œ€์„ฑ'];
console.log(nameList);

// 1. ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ : push()
nameList.push('์ง€์ˆ˜');
console.log('๋งˆ์ง€๋ง‰ ์ถ”๊ฐ€(push)', nameList);

// 2. ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ๋ฐ์ดํ„ฐ ์‚ญ์ œ : pop()
nameList.pop();
console.log('๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ ์‚ญ์ œ(pop)', nameList);

// 3. ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ : unshift()
nameList.unshift('์ง€์—ฐ');
console.log('์ฒซ๋ฒˆ์งธ ์ถ”๊ฐ€(unshift)', nameList);

// 4. ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ๋ฐ์ดํ„ฐ ์‚ญ์ œ : shift()
nameList.shift();
console.log('์ฒซ๋ฒˆ์งธ ์‚ญ์ œ(shift)', nameList);

// 5. ์›ํ•˜๋Š” ์œ„์น˜์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ํ˜น์€ ์‚ญ์ œ : splice()
// -> ์ถ”๊ฐ€ : splice(์ธ๋ฑ์Šค, 0, ์ถ”๊ฐ€๋ฐ์ดํ„ฐ)
nameList.splice(1, 0, '์Šนํ˜ธ');
console.log('splice ์ถ”๊ฐ€', nameList);
// -> ์‚ญ์ œ : splice(์ธ๋ฑ์Šค, ์‚ญ์ œ๊ฐœ์ˆ˜) ** ์ถ”๊ฐ€๋ฐ์ดํ„ฐ ์ƒ๋žต
nameList.splice(1, 2);
console.log('splice ์‚ญ์ œ', nameList);
// -> ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ 

nameList.splice(2, 1, '์˜ˆ์ง„', '์Šนํ˜ธ');
console.log('splice ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ', nameList);

// *** ๋ฆฌ์•กํŠธ์—์„œ ๋งŽ์ด ๋‹ค๋ฃจ๊ฒŒ ๋  ์˜ˆ์ •!!!
// 6. ๊ธฐ์กด์˜ ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ์™€์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ 
//     : map()
let newNameList = nameList.map((element)=>{
    return `๐Ÿงก${element}๐Ÿ’œ`
});
console.log(newNameList);