๐ ๊ณ์ ์ ๋ฐ์ดํธ ์์
- ๊ฐ์ฒด ์ ์ธํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ
์ซ์๋ก ๋ณํ
| ํจ์ | ํน์ง | ์: "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๊ฐ๊ณผ ๋นํจํ ๋ === (์๊ฒฉํ ๋๋ฑ ๋น๊ต)๋ฅผ ์ฌ์ฉํจ
- ์ด๊ฒ์ ํ์ ๊น์ง ์ผ์นํ๋ ๊ฒ์ ์ฐพ๊ณ ์ํ ๋ ์ฌ์ฉ
- `break` ๋ฌธ
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 |
|---|