Backend
home

2024. 6. 18 - JavaScript

JavaScript

์กฐ๊ฑด๋ฌธ

โ€ข
switch ~ case
โ—ฆ
case ์กฐ๊ฑด ๊ฐ’ 1:
์ฒ˜๋ฆฌ๊ตฌ๋ฌธ
break
switch (๊ฐ’) { case ์กฐ๊ฑด ๊ฐ’ 1: ์ฒ˜๋ฆฌ๊ตฌ๋ฌธ break case ์กฐ๊ฑด ๊ฐ’ 2: ์ฒ˜๋ฆฌ๊ตฌ๋ฌธ break default: ์ฒ˜๋ฆฌ๊ตฌ๋ฌธ }
JavaScript
๋ณต์‚ฌ
โ—ฆ
ํ•™์  ๊ณ„์‚ฐ
let score = prompt('ํ•™์ ์„ ์ž…๋ ฅํ•˜์„ธ์š”') switch (Math.floor(score / 10)) { case 10: case 9: alert("A"); break; case 8: alert("B"); break; case 7: alert("C"); break; default: alert("F"); }
JavaScript
๋ณต์‚ฌ
โ—ฆ
์‚ผํ•ญ ์—ฐ์‚ฐ์ž
let chk = num_1 % 2 == 0 ? '์ง์ˆ˜' : 'ํ™€์ˆ˜'
JavaScript
๋ณต์‚ฌ

๋ฐฐ์—ด

โ€ข
๋ฐฐ์—ด: ๋ณ€์ˆ˜๋“ค์˜ ๋ฌถ์Œ โ‡’ ์˜๋ฏธ๊ฐ€ ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ฌถ์Œ
โ—ฆ
์˜ˆ์‹œ: arr ๋ฐฐ์—ด
0x111
0x112
0x113
0x114
0x115
0x11n
์š”์†Œ
1๋ฒˆ์งธ ์š”์†Œ
2๋ฒˆ์งธ ์š”์†Œ
3๋ฒˆ์งธ ์š”์†Œ
4๋ฒˆ์งธ ์š”์†Œ
5๋ฒˆ์งธ ์š”์†Œ
โ€ฆโ€ฆ. n๋ฒˆ์งธ ์š”์†Œ
์ธ๋ฑ์Šค
arr[0]
arr[1]
arr[2]
arr[3]
arr[4]
โ€ฆarr[n]
โ€ข
example code
let arr1 = [1, 2, 3] console.log('arr1 => ', arr1, typeof(arr1))
JavaScript
๋ณต์‚ฌ
โ€ข
๋ฐฐ์—ด ์ปจํŠธ๋กค : ์ฐธ์กฐ(์ ‘๊ทผ), ๊ฐœ์ˆ˜, ์š”์†Œ ์ถ”๊ฐ€, ์š”์†Œ ์‚ญ์ œ
let arr3 = [1, 2, 3, 4, 5] console.log('arr3 ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๊ฐ’ => ', arr3[0]) console.log('arr3 ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ’ => ', arr3[4]) console.log('arr3 ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ’ => ', arr3[arr3.length - 1]) console.log('arr3 ๋ฐฐ์—ด์˜ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ => ', arr3.length)
JavaScript
๋ณต์‚ฌ
โ€ข
๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ : ๋ฐฐ์—ด.push() โ†’ ๋งˆ์ง€๋ง‰ index ๋‹ค์Œ์— ์ถ”๊ฐ€
// ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ : ๋ฐฐ์—ด.push() -> ๋งˆ์ง€๋ง‰ index ๋‹ค์Œ์— ์ถ”๊ฐ€ arr3.push(10) console.log(arr3) console.log(arr3.length)
JavaScript
๋ณต์‚ฌ
โ€ข
๋ฐฐ์—ด์˜ ํŠน์ง• index์— ์œ„์น˜ํ•œ ๊ฐ’์„ ์ œ๊ฑฐ(์‚ญ์ œ) + ๋ฐฐ์—ด.splice(index, ์ œ๊ฑฐํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ์˜ ๊ฐœ์ˆ˜)
// ๋ฐฐ์—ด์˜ ํŠน์ง• index์— ์œ„์น˜ํ•œ ๊ฐ’์„ ์ œ๊ฑฐ(์‚ญ์ œ) // ๋ฐฐ์—ด.splice(index, ์ œ๊ฑฐํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ์˜ ๊ฐœ์ˆ˜) arr3.splice(2, 1) console.log(arr3) console.log(arr3.length)
JavaScript
๋ณต์‚ฌ

๋ฐ˜๋ณต๋ฌธ

โ€ข
for ๋ฐ˜๋ณต๋ฌธ
for (let i = 0; i < 5; i++) { console.log(i) }
JavaScript
๋ณต์‚ฌ
โ€ข
๋ชจ๋“  ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
for (const item in arr3) { console.log(arr3[item]) } console.log('=================================') for (let item of arr3) { console.log(item) }
JavaScript
๋ณต์‚ฌ
โ€ข
while ๋ฌธ
// while (๋ฐ˜๋ณต์˜ ์กฐ๊ฑด bool) {} console.log("while") let num = 0 while (num < 5) { console.log(num) num++; }
JavaScript
๋ณต์‚ฌ
โ€ข
1๋ถ€ํ„ฐ ๋”ํ•ด๋‚˜๊ฐ€๋ฉด์„œ ํ•ฉ์ด 100์ด ์ตœ์ดˆ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ๊ฐ’ ์ฐพ๊ธฐ
// 1๋ถ€ํ„ฐ ๋”ํ•ด๋‚˜๊ฐ€๋ฉด์„œ ํ•ฉ์ด 100์ด ์ตœ์ดˆ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ๊ฐ’์„ ์ฐพ์•„๋ณด์ž let sum = 0 let n = 1 while (true) { sum += n if (sum >= 100) { console.log(n, '์„ ๋”ํ–ˆ์„ ๋•Œ ์ตœ์ดˆ 100์ด ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ํ•ฉ์€', sum) break } // console.log(n) n++ }
JavaScript
๋ณต์‚ฌ
โ€ข
ํ•˜์ด ๋กœ์šฐ ๊ฒŒ์ž„
const rand_num = Math.random() const real_num = Math.floor(rand_num * 100) + 1 let cnt = 0; while (true) { cnt++ if (cnt > 10) { alert('Game Over!!!') break } // ์ˆซ์ž๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ณ  hi/row ์ฒดํฌ let num = Number(prompt('์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”')) if (isNaN(num)) { alert('์˜ฌ๋ฐ”๋ฅธ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.') } else { if (num > real_num) { alert('row') } else if (num < real_num) { alert('high') } else { alert('์ •๋‹ต์ž…๋‹ˆ๋‹ค.') break } } }
JavaScript
๋ณต์‚ฌ

ํ•จ์ˆ˜

โ€ข
ํ•จ์ˆ˜
โ—ฆ
ํŠน์ • ๋ชฉ์ ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋“ค์˜ ์ง‘ํ•ฉ
โ—ฆ
ํ•„์š”์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌ (๋งค๊ฐœ๋ณ€์ˆ˜ ์ •์˜)
โ—ฆ
ํ•„์š”์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ (return ๊ฐ’)
โ€ข
ํ•จ์ˆ˜ ์˜ˆ์ œ
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js_function1</title> <script> // fn1() // ํ•จ์ˆ˜ : ํŠน์ • ๋ชฉ์ ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋“ค์˜ ์ง‘ํ•ฉ // ํ•„์š”์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌ ( ๋งค๊ฐœ๋ณ€์ˆ˜ ์ •์˜ ) // ํ•„์š”์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ ( return ๊ฐ’ ) // function ์‹๋ณ„์ž() {} => ์„ ์–ธ์  ํ•จ์ˆ˜ ์ •์˜ // fn1 ํ•จ์ˆ˜ => ์•ˆ๋…•ํ•˜์„ธ์š” alert ์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜ function fn1() { alert('์•ˆ๋…•ํ•˜์„ธ์š”') } // fn2 ์‹ค์Šต function fn2(age) { array.forEach('์•ˆ๋…•ํ•˜์„ธ์š”! ' + uname + '์ž…๋‹ˆ๋‹ค.') } // ๋‚˜์ด๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„์„œ ์„ฑ์ธ ์—ฌ๋ถ€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ใ…Ž๋งˆ์ˆ˜ function chk_age(age) { if (age >= 19) { alert('์„ฑ์ธ ์ž…๋‹ˆ๋‹ค,. ์ž…์žฅ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค') } else { alert('๋ฏธ์„ฑ๋…„์ž๋Š” ์ถœ์ž…์ด ๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.') } } // ์ถœ์ƒ์—ฐ๋„๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ ์„ฑ์ธ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๊ณ  // ์„ฑ์ธ์ผ ๋•Œ true, ๋ฏธ์„ฑ๋…„์ผ ๋•Œ false ํ•จ์ˆ˜ function chk_age(age) { let result = false // if (age >= 19) { // resule = true // } // return result return age >= 19 } let chk = chk_age(30) // fn2('์†ํฅ๋ฏผ') // check_age(25) // ํ•จ์ˆ˜ => 1๊ธ‰ ๊ฐ์ฒด const fn3 = function () { alert('HI~!!!') } // fn3() // fn1() // ์ˆซ์ž ๋‘ ๊ฐœ๋ฅผ ์ „๋‹ฌ ๋ฐ›์•„์„œ ์‚ฌ์น™ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜ function calc (num1, num2) { console.log('๋”ํ•˜๊ธฐ ๊ฒฐ๊ณผ', num1 + num2) console.log('๋นผ๊ธฐ ๊ฒฐ๊ณผ', num1 - num2) console.log('๊ณฑํ•˜๊ธฐ ๊ฒฐ๊ณผ', num1 * num2) console.log('๋‚˜๋ˆ„๊ธฐ ๊ฒฐ๊ณผ', num1 / num2) console.log('๋‚˜๋จธ์ง€ ๊ฒฐ๊ณผ', num1 % num2) } calc(12, 6) </script> </head> <body> </body> </html>
JavaScript
๋ณต์‚ฌ
โ€ข
๋งค๊ฐœ๋ณ€์ˆ˜ : ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๋ฐ›๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜
โ€ข
๊ฐ€๋ณ€ ๋งค๊ฐœ๋ณ€์ˆ˜: ํ˜ธ์ถœํ•  ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ณ ์ •์ด ์•„๋‹Œ ๊ฐ€๋ณ€์ผ ๋•Œ ์‚ฌ์šฉ
โ€ข
์ „๋‹ฌ๋˜๋Š” ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ํฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
// ์ „๋‹ฌ๋˜๋Š” ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ํฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ธฐ function getMaxNumbers(...nums) { let maxNum = nums[0] for (num of nums) { if (maxNum < num) { maxNum = num } } return maxNum } console.log(getMaxNumbers(1, 12, 5, 9))
JavaScript
๋ณต์‚ฌ
โ€ข
๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜
function test3(name, age = 19, gender = 'M') { // age = age || 30 // gender = gender || 'M' console.log(name) console.log(age) console.log(gender) } console.log('=====================') test3('king') console.log('=====================') test3('king', 20) console.log('=====================') test3('king', 20, 'F')
JavaScript
๋ณต์‚ฌ
โ€ข
๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‹œ๊ธ‰๊ณผ ์‹œ๊ฐ„์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ธ‰์—ฌ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
function earnings(name, wage = 20000, hours = 40) { console.log("============") console.log(`์ด๋ฆ„: ${name}`) console.log(`์‹œ๊ธ‰: ${wage}`) console.log(`๊ทผ๋กœ์‹œ๊ฐ„: ${hours}`) console.log(`๊ธ‰์—ฌ์•ก: ${wage * hours}`) } earnings('์†ํฅ๋ฏผ', 12000, 30) earnings('๊น€๋ฏผ์žฌ', 15000)
JavaScript
๋ณต์‚ฌ
โ€ข
์ฝœ๋ฐฑ ํ•จ์ˆ˜
โ—ฆ
ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜ โ‡’ ์ฝœ๋ฐฑ ํ•จ์ˆ˜
โ—ฆ
๋™๊ธฐํ™” โ‡’ ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ•จ์ˆ˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ ํ›„ ์‹คํ–‰
โ—ฆ
๋น„๋™๊ธฐ โ‡’ ์›น ๊ธฐ๋ฐ˜ ํ†ต์‹  (Rest API), promise
โ€ข
์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์˜ˆ์ œ
function callTenTimes(callback){ // callback = function(i){ // console.log(`${i} ๋ฒˆ์งธ ํ•จ์ˆ˜ ํ˜ธ์ถœ`) // } for(let i = 0; i < 10 ; i++){ callback(i) } } callTenTimes( function(i){ console.log(`${i} ๋ฒˆ์งธ ํ•จ์ˆ˜ ํ˜ธ์ถœ`) } ) const callBackFn = function(val, index){ console.log(index, val) } const cfn1 = function(val, index, temp){ return val % 10 * 100 } const cfn2 = function (num) { return num % 2 == 0 } let arr = [11, 12, 13, 14, 15, 16, 17, 18, 19] arr.forEach(callBackFn) let arr1 = arr.map(cfn1) console.log('arr1 >>> ', arr1) let arr2 = arr.filter(cfn2) console.log('arr2', arr2)
JavaScript
๋ณต์‚ฌ

๊ธฐํƒ€