IT/JavaScript

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ด์ •๋ฆฌ

zi0_0 2025. 2. 23. 00:31
๐Ÿ“Œ ๊ณ„์† ์—…๋ฐ์ดํŠธ ์˜ˆ์ •
- ๊ฐ์ฒด ์„ ์–ธํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

 

 

 

 

์ˆซ์ž๋กœ ๋ณ€ํ™˜

ํ•จ์ˆ˜ ํŠน์ง• ์˜ˆ: "42.5px" ์˜ˆ: "10abc" ์˜ˆ: "hello"
Number() ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ (์‹ค์ˆ˜, ์ •์ˆ˜ ๋ชจ๋‘ ๊ฐ€๋Šฅ) NaN NaN NaN
parseInt() ๋ฌธ์ž์—ด์„ **์ •์ˆ˜(int)**๋กœ ๋ณ€ํ™˜ 42 10 NaN
parseFloat() ๋ฌธ์ž์—ด์„ **์‹ค์ˆ˜(float)**๋กœ ๋ณ€ํ™˜ 42.5 10 NaN

 

 

๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

ํ•จ์ˆ˜ ์„ค๋ช… ์˜ˆ: 42 ์˜ˆ: true ์˜ˆ: null
String() ๋ชจ๋“  ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ "42" "true" "null"
.toString() ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
(๊ฐ์ฒด, null, undefined์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€)
"42" "true" ์—๋Ÿฌ๋ฐœ์ƒ

 

 

๋ถˆ๋ฆฌ์–ธ์œผ๋กœ ๋ณ€ํ™˜

๊ฐ’ Boolean() ๋ณ€ํ™˜ ๊ฒฐ๊ณผ
0, "", null, undefined, NaN false
1, "hello", [], {}, true true

 

ํ•จ์ˆ˜ ์„ค๋ช… ์˜ˆ: 0 ์˜ˆ: 1 ์˜ˆ: " " ์˜ˆ: hello
Boolean() ๊ฐ’์˜ ์ฐธ/๊ฑฐ์ง“ ์—ฌ๋ถ€ ๋ฐ˜ํ™˜ false true false true

 


isNaN

์ฃผ์–ด์ง„ ๊ฐ’์ด NaN์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฉ”์„œ๋“œ 
  • true ๋ฐ˜ํ™˜ → ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ
  • false ๋ฐ˜ํ™˜ → ์ˆซ์ž์ธ ๊ฒฝ์šฐ 
  • ๋ฌธ์ž์—ด, null, undefined ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐ’๋„ ๊ฒ€์‚ฌ ๊ฐ€๋Šฅ 
console.log(isNaN(123));  // false (์ˆซ์ž)
console.log(isNaN("123")); // false (์ˆซ์ž๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ)
console.log(!isNaN("123")); // true ***
console.log(isNaN("hello")); // true (์ˆซ์ž๊ฐ€ ์•„๋‹˜)
console.log(isNaN(NaN)); // true (NaN ์ž์ฒด)
console.log(isNaN(undefined)); // true (NaN์œผ๋กœ ๋ณ€ํ™˜๋จ)

* isnan์€ ํ•˜๋‚˜๋ผ๋„ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , some์€ true๋ฅผ ๋งŒ๋‚˜๋Š” ๊ฒฝ์šฐ ์ฆ‰์‹œ ํ•จ์ˆ˜ ์‹คํ–‰ ์ค‘๋‹จ 

 

 

 

! (๋ถ€์ • ์—ฐ์‚ฐ์ž, NOT ์—ฐ์‚ฐ์ž)

true๋ฅผ false๋กœ, false๋ฅผ true๋กœ ๋ฐ˜์ „์‹œํ‚ค๋Š” ์—ฐ์‚ฐ์ž 
  • ์ˆซ์ž, ๋ฌธ์ž์—ด, ๊ฐ์ฒด ๋“ฑ์„ ๋ถˆ๋ฆฌ์–ธ (true or false)์œผ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ 
console.log(!true);  // false
console.log(!false); // true
console.log(!0);     // true
console.log(!1);     // false
console.log(!"");    // true
console.log(!"abc"); // false

 

 

 

 

switch

์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ œ์–ด๋ฌธ์œผ๋กœ, if-else๋ฌธ์˜ ๋Œ€์•ˆ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ 
  • ์ฃผ์š” ํŠน์ง•
    • `break` ๋ฌธ
      • case ์‹คํ–‰ ํ›„ switch๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ€๊ฒŒ ํ•จ
      • break๊ฐ€ ์—†์œผ๋ฉด ๋‹ค์Œ case๋„ ๊ณ„์† ์‹คํ–‰๋จ (fall-through)
    • `default`
      • ์–ด๋–ค case์™€๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰
      • ์„ ํƒ์‚ฌํ•ญ์ด๋ฉฐ, ํ•„์ˆ˜๋Š” ์•„๋‹˜
    • ์—„๊ฑฑํ•œ ๋น„๊ต 
      • case๊ฐ’๊ณผ ๋น„ํšจํ•  ๋•Œ === (์—„๊ฒฉํ•œ ๋™๋“ฑ ๋น„๊ต)๋ฅผ ์‚ฌ์šฉํ•จ
      • ์ด๊ฒƒ์€ ํƒ€์ž…๊นŒ์ง€ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์„ ์ฐพ๊ณ ์žํ•  ๋•Œ ์‚ฌ์šฉ 
let day3 = "monday";
switch (day3) {
    case "monday":
        console.log('์›”์š”์ผ')
        break
    case "tuesday":
        console.log('ํ™”์š”์ผ')
        break
    default:
        console.log('๊ธฐํƒ€')
}
// ๊ฒฐ๊ณผ: ์›”์š”์ผ

 

  • break๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ?
    • ์“ฐ์ž„์— ๋”ฐ๋ผ ์˜๋„์ ์œผ๋กœ break๋ฅผ ์“ฐ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค!
 // ** case 1
let day4 = "tuesday";

switch (day4) {
    case "monday":
    case "tuesday":
    case "wednesday":
    case "thursday":
    case "friday":
        console.log("ํ‰์ผ์ž…๋‹ˆ๋‹ค.");
        break;
    case "saturday":
    case "sunday":
        console.log("์ฃผ๋ง์ž…๋‹ˆ๋‹ค!");
        break;
    default:
        console.log("์˜ฌ๋ฐ”๋ฅธ ์š”์ผ์„ ์ž…๋ ฅํ•˜์„ธ์š”.");
}
// ๊ฒฐ๊ณผ: ํ‰์ผ์ž…๋‹ˆ๋‹ค.

// ** case 2
let day5 = "saturday";

switch (day5) {
    case "monday":
    case "tuesday":
    case "wednesday":
    case "thursday":
    case "friday":
        console.log("ํ‰์ผ์ž…๋‹ˆ๋‹ค.");
        break;
    case "saturday":
    case "sunday":
        console.log("์ฃผ๋ง์ž…๋‹ˆ๋‹ค!");
        break;
    default:
        console.log("์˜ฌ๋ฐ”๋ฅธ ์š”์ผ์„ ์ž…๋ ฅํ•˜์„ธ์š”.");
}
// ๊ฒฐ๊ณผ: ํ‰์ผ์ž…๋‹ˆ๋‹ค.
  • tuseday์™€ ์ผ์น˜ํ•˜๋Š” case ๋ฐœ๊ฒฌ!
    • ์ผ์น˜ํ•œ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์‹คํ–‰
    • friday์˜ break๋ฅผ ๋งŒ๋‚˜ ์•„๋ž˜๋ถ€ํ„ฐ๋Š” ์‹คํ–‰ ์•ˆ๋จ

 

 

๐Ÿ“ ๋ฐฐ์—ด (Array)

1๏ธโƒฃ ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐ ๋ณ€ํ˜• ๊ด€๋ จ ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์ œ 
push() ๋ฐฐ์—ด ๋์— ์š”์†Œ ์ถ”๊ฐ€ arr.push(4);
pop() ๋ฐฐ์—ด ๋ ์š”์†Œ ์ œ๊ฑฐ ๋ฐ ๋ฐ˜ํ™˜ arr.pop();
unshift() ๋ฐฐ์—ด ์•ž์— ์š”์†Œ ์ถ”๊ฐ€ arr.unshift(0);
shift() ๋ฐฐ์—ด ์•ž ์š”์†Œ ์ œ๊ฑฐ ๋ฐ ๋ฐ˜ํ™˜ arr.shift();
splice(start, deleteCount, item1, item2, ...) ๋ฐฐ์—ด ์ค‘๊ฐ„์—์„œ ์š”์†Œ ์ถ”๊ฐ€/์‚ญ์ œ arr.splice(1, 2, "์ƒˆ๊ฐ’");
slice(start, end) ๋ฐฐ์—ด ์ผ๋ถ€ ๋ณต์‚ฌ (์›๋ณธ ์œ ์ง€) arr.slice(1, 3);
concat() ๋ฐฐ์—ด ๋ณ‘ํ•ฉ arr1.concat(arr2);

 

2๏ธโƒฃ ๋ฐฐ์—ด ๊ฒ€์ƒ‰ ๋ฐ ์š”์†Œ ํ™•์ธ

๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์ œ 
indexOf(value) ํŠน์ • ๊ฐ’์˜ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜ (์—†์œผ๋ฉด -1) arr.indexOf(3);
lastIndexOf(value) ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ๊ฐ’์˜ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜ arr.lastIndexOf(3);
includes(value) ๋ฐฐ์—ด์— ํŠน์ • ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธ (true/false) arr.includes(5);
find(callback) ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ๋ฐ˜ํ™˜ arr.find(x => x > 10);
findIndex(callback) ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜ arr.findIndex(x => x > 10);
some(callback) ํ•˜๋‚˜๋ผ๋„ ์กฐ๊ฑด ๋งŒ์กฑํ•˜๋ฉด true ๋ฐ˜ํ™˜ arr.some(x => x > 10);
every(callback) ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์กฐ๊ฑด ๋งŒ์กฑํ•˜๋ฉด true ๋ฐ˜ํ™˜ arr.every(x => x > 10);

 

some

๋ฐฐ์—ด์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์กด์žฌํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ
โ—๏ธ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉ
  • ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์œผ๋ฉด false ๋ฐ˜ํ™˜
  • ๋ฐ˜๋ณต๋ฌธ (for, forEach) ์—†์ด ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฐ€๋Šฅ
  • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ์œผ๋ฉด ์ฆ‰์‹œ ์ข…๋ฃŒ > ์„ฑ๋Šฅ ์ตœ์ ํ™” 
const array = [1, 2, 3, 4, 5];

// Checks whether an element is even
const even = (element) => element % 2 === 0;

console.log(array.some(even));
// Expected output: true

* isnan์€ ํ•˜๋‚˜๋ผ๋„ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , some์€ true๋ฅผ ๋งŒ๋‚˜๋Š” ๊ฒฝ์šฐ ์ฆ‰์‹œ ํ•จ์ˆ˜ ์‹คํ–‰ ์ค‘๋‹จ 

 

 

3๏ธโƒฃ ๋ฐฐ์—ด ์ •๋ ฌ ๋ฐ ๋ณ€ํ™˜

reverse() ๋ฐฐ์—ด ์ˆœ์„œ ๋ฐ˜์ „ (์›๋ณธ ๋ณ€๊ฒฝ) arr.reverse();
sort([compareFunction]) ๋ฐฐ์—ด ์ •๋ ฌ (๊ธฐ๋ณธ: ๋ฌธ์ž์—ด ์ •๋ ฌ) arr.sort();
join(separator) ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ arr.join("-");
toString() ๋ฐฐ์—ด์„ ์‰ผํ‘œ ,๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ arr.toString();

 

 

4๏ธโƒฃ ๋ฐฐ์—ด ๋ฐ˜๋ณต ๋ฐ ๋ณ€ํ™˜ (๊ณ ์ฐจ ํ•จ์ˆ˜)

forEach(callback) ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ˜๋ณต ์‹คํ–‰ arr.forEach(x => console.log(x));
map(callback) ๊ฐ ์š”์†Œ๋ฅผ ๋ณ€ํ™˜ํ•˜์—ฌ ์ƒˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜ arr.map(x => x * 2);
filter(callback) ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋“ค๋กœ ์ƒˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜ arr.filter(x => x > 10);
reduce(callback, initialValue) ๋ฐฐ์—ด์„ ๋ˆ„์  ๊ณ„์‚ฐํ•˜์—ฌ ๋‹จ์ผ ๊ฐ’ ๋ฐ˜ํ™˜ arr.reduce((acc, x) => acc + x, 0);

 

map 

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋กœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ 
โ—๏ธ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉ
  • ๊ธฐ์กด ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜
  • ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ผ๊ด„์ €๊ธ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•  ๋•Œ ์œ ์šฉ
  • ๋ฐ˜๋ณต๋ฌธ (for, forEach)๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฐ€๋Šฅ 
const array1 = [1, 4, 9, 16];

// Pass a function to map
const map1 = array1.map((x) => x * 2);

console.log(map1);
// Expected output: Array [2, 8, 18, 32]

 

filter

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ฃผ์–ด์ง„ ์กฐ๊ฑด (ํ•จ์ˆ˜)๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋งŒ์„ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ
โ—๏ธ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉ
  • ๊ธฐ์กด ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜
  • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋งŒ ์œ ์ง€ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ œ๊ฑฐ
  • ๋ฐ˜๋ณต๋ฌธ (for, forEach)๋ณด๋‹ค ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•„ํ„ฐ๋ง ๊ฐ€๋Šฅ 
const words = ["spray", "elite", "exuberant", "destruction", "present"];

const result = words.filter((word) => word.length > 6);

console.log(result);
// Expected output: Array ["exuberant", "destruction", "present"]

 

reduce

๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ค„์ด๋Š” (๋ˆ„์ ํ•˜๋Š”) ๋ฉ”์„œ๋“œ 
โ—๏ธ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉ
  • ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋ˆ„์ (accumulate) ํ•˜์—ฌ ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ’(์ˆซ์ž, ๋ฌธ์ž์—ด, ๊ฐ์ฒด ๋“ฑ)์„ ์ƒ์„ฑ
  • ๋ฐฐ์—ด์˜ ํ•ฉ, ํ‰๊ท , ์ตœ๋Œ€๊ฐ’/์ตœ์†Œ๊ฐ’ ์ฐพ๊ธฐ, ๊ฐ์ฒด ๋ณ€ํ™˜ ๋“ฑ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ ๊ฐ€๋Šฅ
  • map(), filter()์™€ ๋‹ฌ๋ฆฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ผ ๊ฐ’ ๋ฐ˜ํ™˜
  • `arr.reduce((๋ˆ„์ ๊ฐ’, ํ˜„์žฌ๊ฐ’) => ๊ณ„์‚ฐ์‹, ์ดˆ๊ธฐ๊ฐ’);`
// ์ˆซ์ž 
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 15

// ๋ฌธ์ž์—ด 
const words = ["Hello", "world", "JavaScript"];
const sentence = words.reduce((acc, word) => acc + " " + word, "");
console.log(sentence); // "Hello world JavaScript"

 

5๏ธโƒฃ ๋ฐฐ์—ด ๊ตฌ์กฐ ๊ด€๋ จ ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์ œ
fill(value, start, end) ํŠน์ • ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ์ฑ„์šฐ๊ธฐ arr.fill(0, 1, 3);
copyWithin(target, start, end) ๋ฐฐ์—ด ์ผ๋ถ€๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ฎ์–ด์“ฐ๊ธฐ arr.copyWithin(0, 2, 4);
flat(depth) ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ํ‰ํƒ„ํ™” [1, [2, [3]]].flat(2);

 

 

'IT > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JavaScript] ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ  (0) 2025.02.24
Copy