JavaScript 7

์ฝœ๋ฐฑ ํ•จ์ˆ˜

์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ž€?์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋˜์–ด ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.์ฆ‰, ํŠน์ • ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.function greet(callback) { callback();}function sayHello() { console.log("์•ˆ๋…•ํ•˜์„ธ์š”!");}greet(sayHello); ์œ„์˜ ์ฝ”๋“œ์—์„œ sayHello๊ฐ€ ๋ฐ”๋กœ greet ํ•จ์ˆ˜์— ์ „๋‹ฌ๋œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.greet ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ callback()์ด ํ˜ธ์ถœ๋˜๋ฉด์„œ ์ „๋‹ฌ๋œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ์˜ this์ฝœ๋ฐฑ ํ•จ์ˆ˜ ๋‚ด์—์„œ this ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋Œ€ํ•œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  const user = { name: 'y9s2n6', greet: fu..

JavaScript 2025.03.23

Promise

๋น„๋™๊ธฐ ์ฝ”๋“œ์—์„œ๋Š” ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ ์ž‘์—…์ด ๋๋‚œ ํ›„ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ Promise๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.Promise ๋ž€?๋น„๋™๊ธฐ ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‚ด์žฅ ๊ฐ์ฒดPromise์˜ 3๊ฐ€์ง€ ์ƒํƒœ- Pending(๋Œ€๊ธฐ) : ์•„์ง ์ž‘์—…์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ์ƒํƒœ- Fulfilled(์„ฑ๊ณต) : ๋น„๋™๊ธฐ ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ๋œ ์ƒํƒœ- Rejected(์‹คํŒจ) : ๋น„๋™๊ธฐ ์ž‘์—…์ด ์‹คํŒจํ•œ ์ƒํƒœ ๋Œ€๊ธฐ -> ์„ฑ๊ณต : ํ•ด๊ฒฐ(resolve) - ์›ํ•˜๋Š” ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋Œ€๊ธฐ -> ์‹คํŒจ : ๊ฑฐ๋ถ€(reject) - ์ž‘์—… ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ const promise = new Promise(() => { setTimeout(() => { co..

JavaScript 2025.03.16

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜

๋ฌธ์ œ ์ƒํ™ฉ : React ํ”„๋กœ์ ํŠธ์—์„œ ์•„๋ž˜์˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๊ฒ€์ƒ‰์–ด ํ•„ํ„ฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ filteredTodos๊ฐ€ ์›ํ•˜๋Š” ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.import { useState } from "react";import "./List.css";import TodoItem from "./TodoItem";const List = ({ todos }) => { const [search, setSearch] = useState(""); const onChangeSearch = (e) => { setSearch(e.target.value); }; const getFilteredData = () => { if (search === "") { return todos; } return..

JavaScript 2025.02.25

์Šค์ฝ”ํ”„ (์ „์—ญ ์Šค์ฝ”ํ”„, ์ง€์—ญ ์Šค์ฝ”ํ”„, ๋ธ”๋ก ์Šค์ฝ”ํ”„, ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„)

์Šค์ฝ”ํ”„ : ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์˜ ์ œ์•ฝ ๋ฒ”์œ„์ „์—ญ, ์ง€์—ญ ์Šค์ฝ”ํ”„ - ์ „์—ญ ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜๊ฐ€ ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ–๋Š”๋‹ค๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์ฝ”๋“œ ์–ด๋””์—์„œ๋‚˜ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.let a = 1; // โ‘ function foo() { console.log(a);}function bar() { console.log(a);}foo(); // โ‘กbar(); // โ‘ขconsole.log(a); // โ‘ฃ ๋จผ์ €, ํ•จ์ˆ˜ ์™ธ๋ถ€์— ๋ณ€์ˆ˜ a๋ฅผ ์„ ์–ธํ•˜๊ณ  1๋กœ ์ดˆ๊ธฐํ™” ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜ foo๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•จ์ˆ˜ foo๊ฐ€ ์‹คํ–‰๋˜์–ด ๋ณ€์ˆ˜ a์ธ 1์„ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ bar๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•จ์ˆ˜ bar๊ฐ€ ์‹คํ–‰๋˜์–ด ๋ณ€์ˆ˜ a์ธ 1์„ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ณ€์ˆ˜ a์ธ 1์„ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ณ€์ˆ˜ a๋Š” ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ ..

JavaScript 2024.11.15

๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜(REST Parameters)

์šฐ์„  ์ธ์ˆ˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค.์ธ์ˆ˜ ๊ฐ์ฒด(Arguments Object) : ํ•จ์ˆ˜์— ์ „๋‹ฌ๋œ ์ธ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์ธ์ˆ˜ ๊ฐ์ฒด๋Š” JavaScript์˜ ์˜ค๋ž˜๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.  ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋ž€ length ์†์„ฑ๊ณผ 0๋ถ€ํ„ฐ ์ธ๋ฑ์Šค๋œ ๋‹ค๋ฅธ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ๋ฐฐ์—ด์˜ forEach, map ๋“ฑ๊ณผ ๊ฐ™์€ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ธ์ˆ˜ ๊ฐ์ฒด๋Š” ์‹ค์ œ ๋ฐฐ์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค. function sum() { console.log(arguments); console.log(arguments.length); console.log(arguments[0]);}sum(); // [Arguments] {}// 0// undefinedsum(1, 2, 3); // [Arguments] { '0'..

JavaScript 2024.08.28

๋งค๊ฐœ๋ณ€์ˆ˜(Parameter)์™€ ์ธ์ˆ˜(Argument)

๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ˆ˜์˜ ๋ช…ํ™•ํ•œ ์ฐจ์ด๋ฅผ ์•Œ์ง€ ๋ชปํ•ด์„œ ํ™•์‹คํžˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.  ๋งค๊ฐœ๋ณ€์ˆ˜(Parameter)๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์ •์˜ ์‹œ, ํ•จ์ˆ˜์— ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. function add(a, b) { return a + b;} ์œ„์˜ ์ฝ”๋“œ์—์„œ a์™€ b๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. add ํ•จ์ˆ˜๋Š” 2๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ๊ทธ ๊ฐ’์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.์ธ์ˆ˜(Argument)์ธ์ˆ˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‹ค์ œ๋กœ ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. const result = add(2, 3); ์œ„์˜ ์ฝ”๋“œ์—์„œ 2์™€ 3์€ ์ธ์ˆ˜์ž…๋‹ˆ๋‹ค. add ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ, 2์™€ 3์ด๋ผ๋Š” ๊ฐ’์ด ๊ฐ๊ฐ ๋งค๊ฐœ๋ณ€์ˆ˜ a์™€ b์— ๋Œ€์ž…๋ฉ๋‹ˆ๋‹ค.

JavaScript 2024.08.28

๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜(default parameters)

์˜ˆ์‹œ๋กœ greetํ•จ์ˆ˜๋Š” name์ด๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. function greet(name) { console.log(`Hello, ${name}!`);} ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ name์— ๋Œ€ํ•œ ๊ฐ’์„ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด name ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ž๋™์œผ๋กœ undefined ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. greet();//Hello, undefined ๊ณผ๊ฑฐ์— ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• function greet(name) {    if (name === undefined){        name = 'Anonymous';    }    console.log(`Hello, ${name}`);}greet();  // Hello, Anonymousgreet('Tom');  // Hello, Tom ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ํ…Œ์ŠคํŠธํ•˜์—ฌ..

JavaScript 2024.08.28